-3
我目前正试图通过我使用jQuery制作的表单上传文件。这就是我试图做的事:你如何上传文件与AJAX
function ajax_upload(){
var formData = new FormData($('form#userform'));
$.ajax({
url: location.protocol + "//" + location.host + "/profile/uploadPicture",
dataType: 'json',
data: formData,
type: 'post',
success: function(data, status){
if (data.status == 'error') {
$('#error').html(data.msg);
}
else {
var filename = location.protocol + "//" + location.host + "/data/profiles/" + data.msg;
$('input#filename').val(filename);
close_upload_form();
pop_profilechanger(filename);
}
}
});
return false;
}
形式出现张贴到后端,但在试图从上传的文件中JSON对象返回的文件名,如: 回声json_encode (array('status'=> $ status,'msg'=> $ msg));
有什么问题吗? 请告诉我
虽然你没有说是什么问题,我们应该保持的东西所有意图和目的的jQuery范围。 var formData = new FormData($('form#userform'));'应该是'var formData = $('form#userform')。serialize()' - 这将确保数据被发送到服务器一个字符串,例如'name = george&email = george @ george.com&validated = 1' ...或者任何你的输入字段/值是...还有...我有没有提及,什么是错误? – Ohgodwhy 2012-08-07 02:15:52
您无法通过javascript直接上传,因为它存在安全风险,浏览器级别的策略不允许。有解决方法,涉及闪光灯,iframe,齿轮,插座和其他各种技术。但总的来说,我认为闪光是你最好的选择。这也可能是为什么你没有得到任何上传工作。是的,表单将会通过传统的AJAX手段发布,但不会与文件一样。检查plupload其一个jQuery上传,多数民众赞成在设计上非常简单,但非常有效的 – chris 2012-08-07 02:41:08
这样的问题被问3-4次最后两天 – 2012-08-07 02:43:29