Где мои $ _FILES? Ajax Uploading - PullRequest
6 голосов
/ 12 апреля 2010

Я создал форму для загрузки изображений и обработал ее с помощью 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 ]

5 голосов
/ 12 апреля 2010

Я не верю, что вы можете отправлять файлы через ajax по соображениям безопасности. Вам нужно будет отправить форму в iframe и обработать ее оттуда.

2 голосов
/ 12 апреля 2010

Вы не можете использовать XHR для загрузки файлов.
Вам нужно использовать IFRAME или flash / Java и такие плагины браузера.

...