此处的任何人都使用了Uploadify&amp ;; 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:照片, 。 。 。
问题...当我使用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没有获取上传的文件?
由于
答案 0 :(得分:4)
答案 1 :(得分:1)
由于您无法通过正常的AJAX请求上传图像(请参阅uploading a file via ajax with php),因此paperclip gem会将请求保留为标准的“text / html”并将文件发送出去。
如果您的控制器中有HTML响应,您会看到它发送回HTML,这是您的浏览器请求的。检查Firefox LiveHTTPHeaders,将正常:远程调用与回形针附件进行比较。