我的$ _FILES在哪里? Ajax上传

时间:2010-04-12 02:15:53

标签: php ajax upload prototypejs

我已经构建了一个表单来上传图像,并使用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),则会正确发送参数,但只会发送图像的文件名。

所以看起来文件本身并没有被发送。 我该如何处理? 谢谢 富

2 个答案:

答案 0 :(得分:6)

出于安全原因,我不相信你可以通过ajax发送文件。您必须将表单发布到iframe并从那里处理它。

答案 1 :(得分:3)

您无法使用XHR上传文件 您需要使用IFRAME或flash / Java以及浏览器的此类插件。