Javascript Rails 3上传和回形针参数散列不可用?
我正在调试我的rails应用程序,当用户输入一个新的文件Uload_映像并通过Uploadify提交父上传时。现在它没有保存任何记录,我正在调试为什么我在upload_image controller的创建方法中删除了一个require“debugger”,并计算了params散列,这就是我得到的Javascript Rails 3上传和回形针参数散列不可用?,javascript,ruby-on-rails-3,hashtable,uploadify,Javascript,Ruby On Rails 3,Hashtable,Uploadify,我正在调试我的rails应用程序,当用户输入一个新的文件Uload_映像并通过Uploadify提交父上传时。现在它没有保存任何记录,我正在调试为什么我在upload_image controller的创建方法中删除了一个require“debugger”,并计算了params散列,这就是我得到的 {"Filename"=>"sample.pdf", "folder"=>"/uploads/", "upload_id"=>"3", "authenticity_token"=&g
{"Filename"=>"sample.pdf", "folder"=>"/uploads/", "upload_id"=>"3", "authenticity_token"=>"gyUCME24FB4PyndTbkrzYZQkLVPtLiJQycnASK/kxbI=", "_pro-template-app-31_session"=>"BAh7CkkiD3Nlc3Npb25faWQGOgZFRkkiJTU4MTBiNzg2Mjg4OGJjNGUzMDY0ZmU0ZjJmMWJjZjFhBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMWd5VUNNRTI0RkI0UHluZFRia3J6WVpRa0xWUHRMaUpReWNuQVNLL2t4Ykk9BjsARkkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIJVXNlcgY7AEZbBmkGSSIiJDJhJDEwJHVSSXZYaDREV1p6U0tSMndtLjFRNU8GOwBUSSIOb25saW5lX2F0BjsARlU6IEFjdGl2ZVN1cHBvcnQ6OlRpbWVXaXRoWm9uZVsISXU6CVRpbWUN1REcwCCtBu8GOgtAX3pvbmVJIghVVEMGOwBUSSIfQ2VudHJhbCBUaW1lIChVUyAmIENhbmFkYSkGOwBGSXU7Bw3QERzAIK0G7wY7CEkiCFVUQwY7AFRJIgplcnJvcgY7AEZJIgAGOwBU--feba71517b823faffc30a993cc96455fa2478f71", "_method"=>"post", "format"=>"json", "_http_accept"=>"application/javascript", "Filedata"=>#<ActionDispatch::Http::UploadedFile:0x00000006af6328 @original_filename="sample.pdf", @content_type="application/octet-stream", @headers="Content-Disposition: form-data; name=\"Filedata\"; filename=\"sample.pdf\"\r\nContent-Type: application/octet-stream\r\n", @tempfile=#<File:/tmp/RackMultipart20120514-22783-xg2pm2>>, "Upload"=>"Submit Query", "action"=>"create", "controller"=>"uploads"}
{“Filename”=>“sample.pdf”,“folder”=>“/uploads/”,“upload\u id”=>“3”,“authenticity\u token”=>“Gyucme24fByndtbkrzyzqklvptlijqycnask/kxbI=”,“\u pro-template-app-31\u session”=>"Bah7ckkid3nlc3npb25fawqgogzfrkkijtu4mtbinzg2mjg4ogjngzmdy0zmwjjjjjjjjfzbjmwjjjjj3rva2vubjsarkkimw5vunrti0rki0uuzfria3j6wqvnll4yk9bjmwjmwjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjVRPBWun1recwcctbu8gogtax3pvcmvjghvvemgowbussif2vudhjhbcbcaw1lichvuyamienhbmfkyskgowbgsxu7wy7qerzaik0g7wy7wy7afrjiggplcnjvcy7aezjigagowbu--feba71517b823faffc30a993cc96455fa2478f71“,”方法“=>”发布“,”格式“=>”json“,”http\u接受“=>”应用程序/javascript“,”文件数据“=”>,”上传“=”提交“,”操作“>”上载“}
我不知道从哪里开始解析文件数据散列信息作为我可以保存的东西…也许我在我的JS中做了什么错误
<script type="text/javascript" charset="utf-8">
<%- session_key = Rails.application.config.session_options[:key] -%>
$(document).ready(function() {
// Create an empty object to store our custom script data
var uploadify_script_data = {};
// Fetch the CSRF meta tag data
var csrf_token = $('meta[name=csrf-token]').attr('content');
var csrf_param = $('meta[name=csrf-param]').attr('content');
// Now associate the data in the config, encoding the data safely
uploadify_script_data[csrf_token] = encodeURI(encodeURI(csrf_param));
// Now associate the data in the config, encoding the data safely
uploadify_script_data[csrf_token] = encodeURI(csrf_param)
$('.uploadify').uploadify(
{
uploader : '/uploadify/uploadify.swf',
cancelImg : '/uploadify/cancel.png',
multi : true,
auto : true,
script : '/uploads',
onComplete : function(event, queueID, fileObj, response, data)
{
var dat = eval('(' + response + ')');
$.getScript(dat.upload);
},
scriptData :
{
'_http_accept': 'application/javascript',
'format' : 'json',
'_method': 'post',
'<%= session_key %>' : encodeURIComponent('<%= u cookies[session_key] %>'),
'authenticity_token': encodeURIComponent('<%= u form_authenticity_token %>'),
'upload_id' : '<%= Upload.last.id + 1 %>'
}
});
});
</script>
$(文档).ready(函数(){
//创建一个空对象来存储自定义脚本数据
var uploadify_script_data={};
//获取CSRF元标记数据
var csrf_token=$('meta[name=csrf token]')。attr('content');
var csrf_param=$('meta[name=csrf param]')。attr('content');
//现在将配置中的数据关联起来,对数据进行安全编码
uploadify_script_data[csrf_token]=encodeURI(encodeURI(csrf_param));
//现在将配置中的数据关联起来,对数据进行安全编码
uploadify_script_data[csrf_token]=encodeURI(csrf_参数)
$('.uploadify').uploadify(
{
上传程序:'/uploadify/uploadify.swf',
cancelImg:“/uploadify/cancel.png”,
多:是的,
是的,
脚本:'/uploads',
onComplete:函数(事件、队列ID、fileObj、响应、数据)
{
var dat=评估(“(“+响应+”)”);
$.getScript(dat.upload);
},
脚本数据:
{
“\u http\u accept”:“application/javascript”,
“格式”:“json”,
"方法":"发布",,
'':编码元件(''),
“真实性令牌”:encodeURIComponent(“”),
“上传id”:”
}
});
});
好的,就获取上传文件信息而言,答案很简单:
@new_upload_image = UploadImage.new(:image => params[:Filedata])
我还有其他问题,但我会问一个新问题。请参阅新的/相关的问题