multipart/form-data
türünde bir posta isteği kullanarak birden çok dosya yüklemek istiyorum ve her dosya için dosya boyutunu (içerik uzunluğunu) bilmem gerekiyor sunucu tarafı.İçerik uzunluğu üstbilgisini çok parçalı/form-veri yüklemesinin tek tek bölümlerine ayarlama
javascript
içinde POST
isteği oluşturmak için FormData
nesnesini kullanıyorum ve bu dosyaya yükleme nesnelerini ekleyeceğim. Bu iyi çalışır, ancak her bir dosyaya Content-Disposition
üstbilgisine ek olarak yalnızca Content-type
başlığı eklenir, ancak bu bilgiler tek tek File nesnelerine ait olsa da Content-length
başlığına eklenmez.
Content-length
başlıklarının, isteği gönderirken FormData
nesnesinin her bölümü için ayarlanmış olması için bir yol var mı?
Kullanımla ilgili sorunum dahil, kullandığım kod aşağıdadır. Bu isteği göndermek için aslında angular-js
kullanır, ancak bunun soruyla alakalı olmadığını düşünüyorum.
var form = new window.FormData();
form.append('additional-field-1', new Blob(['some plain text'], {type : 'text/plain'}));
for (var file in fileList) {
var fileObj = fileList[file];
var count = 1 + parseInt(file, null);
form.append('file-size-' + count, new Blob([fileObj.size], {type : 'text/plain'}));
form.append('file-' + count, fileObj);
}
$http.post(url, form, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
}).success(.....
Buna bir nimet ekledim, benim için de bir acı oldu. – James
xD –
isteğini oluşturmak için açısal kullanmayı teklif edecektim Neden buna ihtiyacın olduğunu açıklar mısınız? Normalde, sunucu tarafı kodu, sınır ayırıcıyı arayarak, başlıkların ayrıştırılması, vs - çoktan verilerdeki her "parçanın" büyüklüğünü çalışır. Her bölümün boyutunu bilmeniz gerekir * önce * her bir "parçanın" parçasını nedense ayırdınız? – sheltond