Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Вниз

Загрузить фаил на сервер   Найти похожие ветки 

 
Alex_C   (2007-10-23 11:30) [0]

Есть страничка, через которую можно загрузить фаил на сервер. Делаю следующее:
const
   multipart_boundary = "-----------------------------7cf87224d2020a";
var
   PostStr: TStringList;
...

   PostStr := TStringList.Create;
   PostStr.Add( "Content-type: multipart/form-data, boundary=" + multipart_boundary );
   //***
   PostStr.Add( "--"+ multipart_boundary );
   PostStr.Add( "content-disposition: form-data; name="upfile"; filename="Temp.exe"");
   PostStr.Add( "Content-Type: application/octet-stream");
   PostStr.Add( "Content-Transfer-Encoding: binary");
   PostStr.Add( "" );

Далее здесь как я понял из описания, должно быть содержание этого файла. Вопрос - как бинарный фаил закодировать и поместить сюда?
P.S. Таким методом запрос для заполнения полей делал - все отлично даботает. а вот как не-текстовый фаил поместить - не понял.


 
umbra ©   (2007-10-23 11:53) [1]


> а вот как не-текстовый фаил поместить - не понял


 fstream := TFileStream.Create("Temp.exe", fmOpenRead or fmShareDenyWrite);
 sstream := TStringStream.Create("");
 sstream.CopyFrom(fstream, 0);
 fstream.Free;
 PostStr.Add(sstream.DataString);
 sstream.Free;


 
Alex_C   (2007-10-23 14:00) [2]

Блин спасибо! Собственно так и думал, но вот эту строку не сообразил как правильно написать:
PostStr.Add(sstream.DataString);
Спасибо!


 
Alex_C   (2007-10-23 15:37) [3]

Все вроде сделал правильно, но не работает. Может кто чего подскажет?
Вот собственно сам текст:

   PostStr := TStringList.Create;

   // Заголовок
   PostStr.Add( "--"+ multipart_boundary );
   PostStr.Add( "Content-Disposition: form-data; name="upfile"; filename=""+
                CurrDir + "\Log\UploadToLoTW.tq8"");
   PostStr.Add( "Content-type: tq8" );
   PostStr.Add( "" );

   // Считываем фаил в поток и загружает его
   fstream := TFileStream.Create( CurrDir + "\Log\UploadToLoTW.tq8", fmOpenRead+fmShareDenyNone );
   sstream := TStringStream.Create("");
   sstream.CopyFrom(fstream, 0);
   fstream.Free;
   PostStr.Add(sstream.DataString);
   sstream.Free;

   // Добавляем окончание
   PostStr.Add( "" );
   PostStr.Add( "--" + multipart_boundary + "--" );

   // Вычисляем длинну
   ContentLength := Length(PostStr.Text);

   // Добавляем заголовок
   PostStr.Insert( 0, "Content-type: multipart/form-data, boundary=" + multipart_boundary );
   PostStr.Insert( 1, "Content-length: " + IntToStr( ContentLength) );
   PostStr.Insert( 2, "" );

Вроде все как положено, но фаил не отправляется


 
Alex_C   (2007-10-23 15:39) [4]

Вопрос особенно по строке "Content-type: tq8"  - это правильно для файла с моим расширением? И правильно ли я вычислил длину?



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.041 c
2-1217936762
abhtr
2008-08-05 15:46
2008.09.14
Проблемы с открытием таблицы Paradox


2-1217707537
programmer90
2008-08-03 00:05
2008.09.14
Делфи 2007+Инет+МС Офис


15-1216821757
Vlad Oshin
2008-07-23 18:02
2008.09.14
Поставил FastMM.dll - стала BDS2006 глючить. Ни у кого больше?


2-1217659794
гость
2008-08-02 10:49
2008.09.14
Что такое файл в формате CSV? %)


15-1216791077
pushkin42
2008-07-23 09:31
2008.09.14
Аналог IAM & TrafficInspector for WinRoute





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский