Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

Karamat


Известный Болтун

Зарегистрирован:
21 February 2005
Сообщения: 521
Примеры кода: 0
 

Upload файла в форму POST

22 July 2006 19:50  




Здравствуйте! Есть на сервере форма — там всякие поля, поля, и аплоад файла.
Вопрос заключается в том собственно — как залить файл на сервер?
ВОт так я пользую передачу данных форме типа POST:



HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
byte[] requestBody = System.Text.Encoding.UTF8.GetBytes(param);
request.ContentLength = requestBody.Length;
using(Stream requestStream = request.GetRequestStream())
{
requestStream.Write(requestBody, 0, requestBody.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using(StreamReader streamReader = new StreamReader(response.GetResponseStream()))
{
return streamReader.ReadToEnd();
}
}

как "передать" туда теперь файл?
Т.е. с обычными параметрами ясно, там, к примеру: textboxName1=userTypedText&textboxName2=userTypedText2...
А как быть с файлом? Я нарыл такую штуку:

fileData = это данные из файла, param — стринг с параметрами

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "POST";
request.ContentType = "multipart/form-data";/*"application/x-www-form-urlencoded"*/;
request.KeepAlive = true;


string dataBoundary = "--xyz";
StringBuilder DataString = new StringBuilder();
DataString.Append(dataBoundary + "\r\n");
DataString.Append("Content-Disposition: form-data; name=" + "\"" + "File1" +
"\"; filename=" + "\"" + "TestFile3.txt" + "\"" + "\r\n");
DataString.Append("Content-Type: text/plain\r\n\r\n");
DataString.Append(fileData);
DataString.Append(dataBoundary + "\r\n");
DataString.Append("Content-Disposition: form-data; name=" + "\"" +
"Submit1" +
"\"" + "\r\n\r\n" + "Upload\r\n" + dataBoundary + "--\r\n");
byte []Postdata =
System.Text.Encoding.Default.GetBytes(DataString.ToString());
request.ContentLength = Postdata.Length;
Stream tempStream = request.GetRequestStream();
tempStream.Write(Postdata,0,Postdata.Length);
tempStream.Close();
HttpWebResponse Resp = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(Resp.GetResponseStream(),
Encoding.Default);
//Convert the stream to a string
string s = sr.ReadToEnd();
sr.Close();
Resp.Close();
return s;


Но эта штука у меня не работает. Скажите, где ошибка?
Спасибо.
Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.

Данное сообщение получено с сайта GotDotNet.RU
Наверх
  



Общие вопросы программирования на ASP.NET

 Upload файла в форму POSTKaramat  22 July 2006 19:50
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта