2016-03-29 22 views
0

Büyük dosyalar için bir yükleme rutini uygulamaya çalışıyorum, bunun için dosya yığınları yapıyorum ve öbek tarafından sunucuya kadar çok şey gönderiyorum.

Şimdi parça parçalarını tanımlamak için, FormData numaralı dosyadan daha fazla bilgi göndermeye çalışıyorum. PHP tarafında chunkpart üzerinde

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); 

$_FILES ancak chunkNumber, maxChunks ve fileID bulunan $_POST bulunurlar.

Benim sorum burada: Yanlış bir şey mi yapıyorum yoksa sadece FormData'un nasıl çalıştığını yanlış anladım ve beklediğim gibi nasıl çalıştırabilirim?

+0

FormData'nin nasıl çalıştığını yanlış anladınız. Verilere neden $ _FILES'de ihtiyacınız var? '$ _POST' dan okumakta yanlış olan nedir? – Quentin

+0

@Quentin, Michael Fromin'in cevabındaki yorumu gör –

cevap

0

Bu, yayınlanan içeriğin BLOB verileriyle nasıl çalıştığıdır. Çok parçalı formda bir "dosya" olarak yüklenir. PHP'de bu biçimdeki form verisi $ _FILES değişkeninde ve $ _POST değil.

Hem $ _POST hem de $ _FILES öğesinden veri alamamanın bir nedeni var mı? Dosyaları/görüntüleri içeren form içeriği yayınlarken düzenli olarak yapıyorum.

+0

Her ikisini de alabilirim ama neden beklediğim gibi çalışmadığını anlamaya çalıştım. Bu yüzden herhangi bir şeyi yanlış anladım mı diye sordum. Sadece bir göz atın (burada) (https://developer.mozilla.org/en-US/docs/Web/API/FormData/append) ve anahtar/değer çiftlerini eklediklerini gördüm, böylece nasıl çalıştığını düşündüm;) –