我已经构建了一个表单来上传图像,并使用Prototype / PHP进行处理。
$('image_upload').observe('submit', function() {
var params = $H();
params.set('name', $('image_title').value);
params.set('from', $('from_who').value);
params.set('upload_file', $('upload_file').value);
new Ajax.Request('/files/upload_process.php', {
method:'post',
parameters: params,
onSuccess: function(r) {
$('uploadbox').update('<img src="/images/interface/thankyou.png" />');
}
})
});
表单本身将数据发送到服务器,但是当我尝试输出print_r($_FILES['upload_file']);
时,什么都没有出现,甚至没有空数组。
如果输出print_r($_POST)
,则会正确发送参数,但只会发送图像的文件名。
所以看起来文件本身并没有被发送。 我该如何处理? 谢谢 富
答案 0 :(得分:6)
出于安全原因,我不相信你可以通过ajax发送文件。您必须将表单发布到iframe并从那里处理它。
答案 1 :(得分:3)
您无法使用XHR上传文件 您需要使用IFRAME或flash / Java以及浏览器的此类插件。