Tôi đang làm việc để triển khai Ajax-Upload để tải ảnh lên trong ứng dụng Rails 3 của tôi. Các tài liệu cho biết:Rails 3 nhận dữ liệu bài thô và ghi nó vào tập tin tmp
For IE6-8, Opera, older versions of other browsers you get the file as you normally do with regular form-base uploads.
For browsers which upload file with progress bar, you will need to get the raw post data and write it to the file.
Vì vậy, làm thế nào tôi có thể nhận được các bài dữ liệu thô trong bộ điều khiển của tôi và viết nó vào một tập tin tmp để điều khiển của tôi sau đó có thể xử lý nó? (Trong trường hợp của tôi điều khiển được thực hiện một số thao tác hình ảnh và tiết kiệm để S3.)
Một số thông tin bổ sung:
Như tôi đang cấu hình ngay bây giờ các bài được đi qua các thông số:
Parameters:
{"authenticity_token"=>"...", "qqfile"=>"IMG_0064.jpg"}
... và CREATE hành động trông như thế này:
def create
@attachment = Attachment.new
@attachment.user = current_user
@attachment.file = params[:qqfile]
if @attachment.save!
respond_to do |format|
format.js { render :text => '{"success":true}' }
end
end
end
... nhưng tôi nhận được lỗi này:
ActiveRecord::RecordInvalid (Validation failed: File file name must be set.):
app/controllers/attachments_controller.rb:7:in `create'
Tôi vừa phát hành một ví dụ về tải lên ajax trong đường ray 3 + Tải lên tại đây: https://github.com/apneadiving/Pic-upload---Crop-in-Ajax. Hy vọng nó có thể giúp – apneadiving