Я новичок в веб-разработки, и последняя проблема, которую я был с раздаёт Аякса файл ...
Сейчас у меня есть два поля ввода HTML; ввод файла и кнопка.
<input type="file" name="Frame" id="Frame_"/>
<input type="button" name="FrameButton" id="FrameButton_" value="UPLOAD"/>
После нажатия кнопки затем вызвать функцию, которая имеет следующий код ..
var frame = document.getElementById('Frame_');
var frameImg = frame.files[0];
var form_data = new FormData();
form_data.append('frame', frameImg);
jQuery.ajax({
url : './handler.php',
type : 'post',
data : form_data
contentType : false,
processData : false,
success : alert("Frame Uploaded")
});
Когда я var_dump() для $ _POST и $ _FILES, он показывает оба массива как пустые. Это несмотря на «полезную нагрузку запроса» в показаниях Chrome Dev
Content-Disposition: form-data; Name = "кадр"; имя файла = «GoldFrame.jpg»
Content-Type: изображение/JPEG
В котором я нахожусь под впечатлением, что это означает, что информация о файле, который я выбираю на переднем конце успешно " post "ed в файл handler.php. Это неправильная интерпретация?
В любом случае, может кто-нибудь, пожалуйста, дать мне ответ на мою проблему? Или, по крайней мере, укажите ресурс, который может иметь мой ответ? Кажется, что есть много похожих вопросов по тем же направлениям, но я не видел одного, у которого есть твердый ответ.
Я использовал iframe для такого рода вещей в прошлом, но это похоже на действительно взломанный метод, и я хотел бы иметь гибкость в использовании ajax для такого рода задач в будущем.
Справка приветствуется.
Здесь; посетите http://php.net/manual/en/function.error-reporting.php, а затем примените это к своему коду. Проверьте консоль. –
вы задаете неверный тип содержимого, что означает, что jquery не отправляет какой-либо тип. если PHP не видит подходящий тип, он не будет ПРИНИМАТЬ представление формы/файла и не будет анализировать/заполнять ввод для $ _POST/$ _ FILES. Вы также устанавливаете processData в false, поэтому объект, который вы передаете, ** NOT ** также обрабатывается в обычном представлении. –
Проверьте тип содержимого для загрузки файла. У вас есть ошибка. После этого вы можете проверить, правильно ли выполняется вызов Ajax или нет с консоли вашего браузера. Если он дает ошибку, то вы должны это проверить. –