Rails 3与Uploadify&Paper_Clip

4

这里有没有人有Rails 3与Uploadify和Paper_Clip的经验?

我想让用户上传照片:

这是我的视图:

<input id="fileInput" name="fileInput" type="file" />
    <script type="text/javascript">
        $(document).ready(function() {

            $('#fileInput').uploadify({
                uploader : '/uploadify/uploadify.swf',
                fileDataName : 'photo[file]',
                script : '/photos/upload',
                cancelImg : '/uploadify/cancel.png',
                auto : true,
                scriptData : {
                    '_http_accept': 'application/javascript',
                    '_method': 'put',
                    "<%= key = Rails.application.config.session_options[:key] %>" : "<%= cookies[key] %>",
                    "<%= request_forgery_protection_token %>" : "<%= form_authenticity_token %>"

                }
            });
        });
    </script>

我的控制器:

  def upload
    @photo = Photo.create(params[:file])

    respond_to do |format|
      format.json
    end
  end

我的模型: #Paperclip用于照片 has_attached_file :photo, . . .

问题是...当我使用uploadify进行渲染时,如果有错误,在日志中会显示:

Started POST "/photos/upload" for 127.0.0.1 at Sun Oct 24 12:16:38 -0700 2010
  Processing by PhotosController#upload as HTML
  Parameters: {"photo"=>{"file"=>#<File:/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/RackMultipart20101024-34605-sqvg1m-0>}, "_http_accept"=>"application/javascript", "Filename"=>"whiteboard_2.jpg", "folder"=>"/projects/3/photo_albums/", "authenticity_token"=>"l9TqKh1Q7/8riUjuPMj7QtiJwNNxvBKfENnTx/ijP3E=", "Upload"=>"Submit Query", "_cline_session"=>"BAh7CCIQX2NzcmZfdG9rZW4iMWw5VHFLaDFRNy84cmlVanVQTWo3UXRpSndOTnh2QktmRU5uVHgvaWpQM0U9Ig9zZXNzaW9uX2lkIiVmYjYyYmM5YjU0YTBkMWMwNWZmMDQ3NmE1NzU1YTE1YSIZd2FyZGVuLnVzZXIudXNlci5rZXlbByIJVXNlcmkG--f5b0cb3a6b775b2cc15eb30b20aa3c3f558b0412"}
  User Load (0.2ms)  SELECT "users".* FROM "users" WHERE ("users"."id" = 1) LIMIT 1
  SQL (0.4ms)  INSERT INTO "photos" ("created_at", "description", "photo_content_type", "photo_file_name", "photo_file_size", "photo_updated_at", "title", "updated_at", "user_id") VALUES ('2010-10-24 19:16:39.042342', NULL, NULL, NULL, NULL, NULL, NULL, '2010-10-24 19:16:39.042342', NULL)
[paperclip] Saving attachments.
Completed 406 Not Acceptable in 50ms

有什么想法,为什么Rails无法获取上传的文件?
谢谢。
2个回答

4

1

由于您无法通过普通的AJAX请求上传图像(请参见使用PHP通过ajax上传文件),因此paperclip gem将请求保留为标准的“text/html”并发送文件。

如果您的控制器有HTML响应,则会看到它发送回所请求的HTML,这是您的浏览器请求的内容。检查Firefox LiveHTTPHeaders以比较正常的:remote调用和带有paperclip附件的调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接