Я пытаюсь сделать запрос AJAX отправить файл в мой контроллер, который затем должен продолжить считывание отправленного файла и вернуть отсортированный массив обратно в интерфейс, хотя это не работает, поскольку я застрял на ошибке «blob», не установленной. Я искал, но не нашел ответа, который я искал, поэтому я задаю этот вопрос.Отправка файла через AJAX возвращает ошибку «blob»
В настоящее время я получаю следующее TypeError:
'slice' called on an object that does not implement interface Blob.
Данные, которые я пытаюсь отправить выглядит следующим образом:
http://piclair.com/qk8ms (рис, потому что я не могу скопировать данные непосредственно из браузера)
JavaScript:.
// Click handler for file read
$(document).on('click','#load-csv-btn',function(e){
e.preventDefault();
var file = $('#file_upload')[0].files;
console.log(file);
readCSV(file);
});
function readCSV(file){
$.ajax({
type: "POST",
url: "ajax/read.php",
data: {file: file},
contentType: false
}).success(function(data){
console.log(data);
}).fail(function(){
console.log('error');
});
}
Обработчик PHP, хотя я думаю, что часть является своего рода несоответствующими для данной проблемы:
<?php
var_dump($_POST);
Я нашел кого-то говорил, что установка processData: false
и contentType: false
позволил бы сценарий игнорировать блоб Requirment, но если я устанавливаю эти параметры мой сервер просто отправляет обратно пустой массив, который, я думаю, не является сюрпризом, поскольку я не обрабатываю какие-либо данные.
Так что я надеюсь, что кто-то знает решение этой проблемы и сможет мне помочь.
EDIT:
Просто ясно, какой метод я попробовал, что возвращает пустой массив, здесь альтернативный код:
$(document).on('click','#load-csv-btn',function(e){
e.preventDefault();
var file = $('#file_upload')[0].files[0];
var fd = new FormData();
fd.append("csv",file);
readCSV(fd);
});
function readCSV(file){
$.ajax({
type: "POST",
url: "ajax/read.php",
data: {file: file},
contentType: false,
processData: false
}).success(function(data){
console.log(data);
}).fail(function(){
console.log('error');
});
}
Проверьте http://stackoverflow.com/questions/19722920/submitting-a-file-with-jquery-ajax-gives-typeerror –
@ jQuery.PHP.Magento.com Я пробовал этот метод, но он отправляет назад пустой массив, как описано в моем сообщении. 'var_dump ($ _ REQUEST)' и 'var_dump ($ _ POST)' оба делают. –
@entiendoNull Спасибо, я постараюсь следовать этому учебнику и посмотреть, работает ли он. Я дам обновление, как только попробую. –