2014-12-16 1 views
0

Как вы добавляете почтовый индекс в почтовый запрос multipart/form-data?Добавить zip в почтовый запрос http:

Вышеприведенная загрузка zip, но когда я загружаю ее, она распаковывается в .cpgz, и если я unizp, что он создает .zip и просто циклы.

+0

Зачем вам размещать ** zip ** -файл с расширением ** txt **? –

+0

На каком языке написан этот код? –

+0

Это написано в Powershell – GregWringle

ответ

0

Измените заголовок Content-Disposition, чтобы указать filename, который соответствует фактическому названию загружаемого файла. Вы также должны установить Content-Type либо application/zip, либо application/x-zip-compressed, чтобы сервер знал, что загруженные данные являются zip-файлом.

$bytes = Get-Content "C:\Users\User\Test.zip" -Encoding Byte -ReadCount 0 
$parameters = " 
--$boundary 
Content-Disposition: form-data; name=`"file`"; filename=`"Test.zip`" 
Content-Type: application/x-zip-compressed 
Content-Transfer-Encoding: binary 

$bytes 
--$boundary--" 
+0

Я реализовал изменения, которые вы описали, и это все еще происходит. Я могу загрузить zip, но он просто распаковывается в оригинал, создавая бесконечный цикл. Будет ли это ошибкой в ​​байтах $? Итак, правильно, что я помещаю байты после Content-Transfer или должен быть бинарным? Вот пример моих двоичных данных: 165 166 205 48 156 250 39 89 – GregWringle

+0

Вы помещаете байты в нужное место, но указанные вами байты НЕ являются начальными байтами действительного почтового файла. Zip-файл всегда начинается с '80 75 3 4' decimal (' 50 4B 03 04' hex) - подпись PK в соответствии с спецификацией формата ZIP, которая была первоначально написана PKWARE. –

+0

Хорошо, если это действительный формат zip, почему он будет создавать расстегивающий цикл при загрузке? Я загружаю Test.zip, он распакуется в Test.zip.cpgz, который распакуется в Test.zip и перевернется. Если я открою его в окнах, он скажет, что почтовый индекс недействителен. – GregWringle