Почему PHP не видит загрузку файлов через POST и jquery? - PullRequest
0 голосов
/ 17 марта 2012

У меня есть этот HTML:

<form action='uploadhandle.php' method='POST' enctype="multipart/form-data">
<input type='file' class='fileinput' id='photo1' name='photo1'>
<input type='button' id='upload1' name='upload1' value='Upload'>
</form>

Мой код jquery:

$('#upload1').click(function(){
    $.ajax({
        url: "uploadhandle.php",
        data: 'photo1='+photo1,
        success: function(data){$('#result_div').html(data)}

        });

В моем uploadhandle.php при попытке отобразить $ _POST ['photo1']ничего не происходит, это "неопределено".Кто-нибудь знает, что я сделал не так?

Большое спасибо, С уважением

Ответы [ 2 ]

6 голосов
/ 17 марта 2012

Вы не можете загрузить файл через AJAX. Это невозможно.

Что возможно, так это использование плагина или другого метода, который «имитирует» ajax, создавая iframe и отправляя информацию в фоновом режиме. Есть несколько плагинов, которые обрабатывают это, некоторые очень сложные, некоторые просто расширяют саму функцию ajax.

При этом ваш синтаксический сервер также неверен. Вы должны иметь дело с $_FILES, а не $_POST, чтобы найти и использовать представленный файл.

Удачи.

0 голосов
/ 17 марта 2012

Вы не можете загружать данные файла через XHR (т.е. ajax). В XHR2 имеется API загрузки файлов, но наиболее практичный и совместимый с браузером способ сегодня, похоже, использует скрытый фрейм для загрузки файла.

Редактировать: См. Как опубликовать в iframe?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...