2013-02-19 10 views
10

http-trafic'ten yüklemeleri almam gerekiyor. Bunu nasıl yapabilir? Her şeyden önce, istek yöntemi POST olacaktır. İkincisi, bir İçerik Tipi başlık alanı olacaktır. Formüler verileri ayıklamak istemiyorum, ancak posta ekleri gibi yüklenir.İçeriği yüklerken HTTP-Request içinde Content-Type değeri nedir?

+0

Farkettiklerim: Mime-Type çoğu zaman "multipart/form-data"; Ama gerçekten bunun sayesinde herhangi bir deneyimim yok. Bu sorunun neden reddedildiğini anlamıyorum. – user1826831

cevap

16

İçerik türü per specificationmultipart/form-data'dur.

Bu, büyük bir istekte birden çok alt istek olarak görülebilen özel bir içerik türüdür. Bu alt isteklerin her birinin (bir form-veri öğesi) kendi başlıkları vardır. Gerçek verinin içerik türü buradadır.

İşte (HTML açısından <input name="textfield"><input type="file" name="filefield"> kullanarak) 1, normal alan ve 1 dosya alanı ile nasıl göründüğünü bir örnek: ayrıştırma ve bu veri ayıklama gibi

Content-Type: multipart/form-data;boundary=SOME_BOUNDARY 

--SOME_BOUNDARY 
content-disposition: form-data;name="textfield" 
content-type: text/plain;charset=UTF-8 

value of textfield here 
--SOME_BOUNDARY 
content-disposition: form-data;name="filefield";filename="some.ext" 
content-type: application/octet-stream 

binary file content here 

--SOME_BOUNDARY-- 

, hemen her programlama dili yerleşik vardır Bunun için/3. parti API'ları. Hangisini kullandığınız hakkında bir şey söylemediğinden, hedeflenmiş bir cevap vermek imkansızdır. Örneğin, Java için bu, ya 3. parti kütüphanesi Apache Commons FileUpload ya da API-sağlanan request.getPart() yöntemini kullanırken.

+0

Bunu gerçekleştirmek için C# kullanıyorum. Bayt dizisinde saklanan bilgiyi aldım. – user1826831

0

Eğer sadece bir bayt dizisi verileri kaydetmek istediğiniz (hiçbir şekilde ve bu doğru yoldur söylüyorum), en POST vücudu nasıl okunacağı bakmak gerekir: verilerini okuma Reading POST body with bottle.py ve sonra yeni bir dosya oluşturmak hile yapmalıdır.

İlgili konular