2016-03-29 4 views
0

Я пытаюсь реализовать процедуру загрузки для огромных файлов, для этого я разбиваю файл и отправляю кусок на кусок сервера до сих пор настолько хорошим.

Теперь, чтобы идентифицировать части фрагмента, я пытаюсь отправить дополнительную информацию, отличную от purepartpart, в FormData.

var xhr = new XMLHttpRequest(); 
xhr.open("POST", 'upload.php', true); 

var formData = new FormData(); 
formData.append("chunkpart", blob); // blob is Blob() or BlobBuilder 
formData.append("chunkNumber", sendCount); // sendCount is an integer 
formData.append("maxChunks", Math.ceil(maxChunks)); // maxChunks is a floatingpoint 
formData.append("fileID", fileID); // fileID is an almost unique string 
xhr.send(formData); 

На стороне PHP chunkpart находится в $_FILES однако chunkNumber, maxChunks и fileID находятся в $_POST.

Мой вопрос здесь: Я делаю что-то неправильно или просто неправильно понял, как работает FormData и как я могу заставить его работать, как я ожидал?

+0

Вы неправильно поняли, как работает FormData. Зачем вам нужны данные в '$ _FILES'? Что не так, прочитав его с '$ _POST'? – Quentin

+0

@Quentin посмотреть комментарий от Michael Fromin –

ответ

0

Это просто то, как размещенный контент работает с данными BLOB. Он загружается как «файл» в многостраничном сообщении. В PHP этот тип данных формы находится в переменной $ _FILES, а не $ _POST.

Есть ли какая-то причина, по которой вы не можете захватить данные из $ _POST и $ _FILES? Я делаю это регулярно при обработке содержимого формы, содержащей файлы/изображения.

+0

Я могу взять оба из курса, но я попытался понять, почему он не работает должным образом. Поэтому я спросил, не понял ли я что-нибудь. Просто посмотрел [здесь] (https://developer.mozilla.org/en-US/docs/Web/API/FormData/append) и увидел, что они добавляют пары ключ/значение, поэтому я подумал, что это работает;) –

Смежные вопросы