ajax передача файла в php

396
10 декабря 2016, 10:51

Как передать файл из input type=file при помощи ajax или post методом POST файл в файл phpне могу толкового ничего найти и сделать.

Пытаюсь так но что то не выходит ничего хорошего из этого

$.ajax({
url: "ajax.php",
type: "post",
data: "upload_file="+$('#file')[0].files[0],
success: function(){
},
error: function (jqXHR, exception) {
}
dataType: "json"
});

Пытаюсь в php ловить так

$_FILES['upload_file']['tmp_name']
Answer 1

Это позволяет делать FormData

$.ajax({
    url: "ajax.php",
    type: "post",
    data: new FormData($('#file').parents('form:first')[0]),
    /*при использовании FormData флаги processData и contentType надо ставить в false*/
    processData: false,
    contentType: false,
    success: function(){
    },
    error: function (jqXHR, exception) {
    }
    dataType: "json"
});

Только советую исследовать на предмет совместимости сначала http://caniuse.com/#feat=xhr2

UPD:
Подправил код. При таком запросе в PHP дальше надо работать с $_FILES['file'] - как и обычно.

READ ALSO
Проверка данных не правильно работает

Проверка данных не правильно работает

Помогите разобраться Использую вот такой простейший код:

309
Помогите разобраться со скриптом ajax

Помогите разобраться со скриптом ajax

Не понимаю почему не срабатывает скрипт:

351
phpPDO insert дважды добавляет [закрыто]

phpPDO insert дважды добавляет [закрыто]

Привет всем! Делаю запрос инсерт, но выполняется оно дваждыЭто что баг?

282
оптимизация скрипта (Fatal error: Allowed memory)

оптимизация скрипта (Fatal error: Allowed memory)

Привет! Возникла проблема - при чтении из большой таблицы базы данных скрипт выдаёт ошибку:

306