Я буду проблемой облицовки в вывешивать архивы изображения как бинарные данные к webpage. столб
If iего данные по формы using форма маркирует Action=URL и Method= " столб ", I m получая необходимый формы-data " enctype= " id= " form1 >
999/xhtml " nofollow " " rel= " _blank " target= " http://www.w3.org/1999/xhtml href= http://www.babypre/>.au/gatewadictor.comy/api.php " > удостоверение личности знаменитости image1Data:
image1Data " сервера " " runat=: image2Data/> " сервера " " runat= FileUpload ID= " image1Data: OR image2Data " сервера " " runat=:
transaction_id FileUpload ID= " image2Data ":
security: cd691389 "/>
misc1:
misc2 " text= " miscval1 " TextBox ID= " misc1:
misc3 " text= " miscval2 " TextBox ID= " misc2:
misc4 " text= " miscval3 " TextBox ID= " misc3: />
" сервера " " runat= " text= " miscval4 TextBox ID= " misc4: Кнопка ID= " представляет " runat= " сервера " Text= " представляет "
But/>, если я пытаюсь послать данные по изображения using «HTTPWebRequest» путем формировать коллекторы, данные и трейлеры, то I m способное для того чтобы получить реакцию от вывешенного URL, но изображения morphed. [Rel= " nofollow "» _blank»» target= " http://www.babypredictor.com.au/gateway/api.php href= http://www.babypredictor. eway/api.php com.au/gat» получает 1 или 2 изображения, котор мы вывешиваем и morph они в одиночный pic и посылаем URL успеха].
Looks iий m делая некоторую ошибку в сообщении HTTP формируя пока оприходование к URL цели. Может любое угодить для того чтобы помочь мне вычислять вопрос и получать ему работу как столб нормальной формы.
Attached будет мое разрешение. Вы можете раскрыть использующ ПРОТИВ 2008.
I судимого using Firebug для того чтобы отлаживать первоначальные данные HTTP столба и они смотрят почти такие же как для оприходование ФОРМЫ, так и для оприходование HTTPWebRequest, но изображения morphed для моя последней. Желание кто-то может найти вопросом и помощью me.
Here будут мое //public пустое HttpUploadFile HttpUploadFile свободного пространства публики Кодего столба Snippet.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// (url шнура, HttpPostedFile file1, HttpPostedFile file2, paramName шнура, contentType шнура, nvc NameValueCollection) (url шнура, шнура file1, шнура file2, paramName шнура, contentType шнура, nvc NameValueCollection) { //log.Debug (шнур. Форматируйте ( " Uploading {0} {1}», архив, url)); граница шнура = «---------------------------» + DateTime.Now.Ticks.ToString («x»); boundarybytes байта [] = System.Text.Encoding.ASCII.GetBytes (» \ r \ n--» + граница + «\ r \ n»); wr
HttpWebRequest = (HttpWebRequest) WebRequest.Create (url); wr.ContentType = «многодетально/форм-данные; boundary=» + граница; wr . Метод = «СТОЛБ»; wr.KeepAlive = true; wr . Документы = System.Net.CredentialCache.DefaultCredentials; wr.Referer = url;
wr.Примите = «текст/xml, применение/xml, application/xhtml+xml, текст/html; q=0.9, text/plain; q=0.8, image/png, */*; q=0.5»; wr.UserAgent = «Mozilla/4.0 (совместимое; MSIE 6.0; Шиндошсо НТ 5.1; Q312461; .NET CLR 1.0.3705)»; //wr.Accept = «изображение/gif, image/x-xbitmap, изображение/JPEG, изображение/pjpeg, application/vnd.ms-excel, применение/msword, application/x-shockwave-flash, */*»; rs потока
= wr.GetRequestStream (); formitem шнура
, коллектор; formdataTemplate шнура
= «Содержани-Решение: форм-данные; name= \» {0} \ «\ r \ n \ r \ n {1}»; foreach (ключ шнура в nvc. ключей) {rs . Напишите (boundarybytes, 0, boundarybytes. Длина); formitem = шнур . Форма (formdataTemplate, ключ, nvc [ключ]); formitembytes байта [] = System.Text.Encoding.ASCII.GetBytes (formitem); rs.Напишите (formitembytes, 0, formitembytes. Длина); rs
}. Напишите (boundarybytes, 0, boundarybytes. Длина); headerTemplate шнура = «Содержани-Решение: форм-данные; name= \» {0} \ «; filename= \» {1} \ «\ r \ nContent-Type: {2} \ r \ n \ r \ n»; коллектор = шнур . Форма (headerTemplate, paramName, file1, contentType); headerbytes байта [] = System.Text.Encoding.ASCII.GetBytes (header); rs . Напишите (headerbytes, 0, headerbytes. Длина); поток
file1Stream = file1.InputStream; fileStream //FileStream = новое FileStream (file1.FileName, FileMode.Open, FileAccess.Read); буфер байта [] = новый байт [4096]; bytesRead int = 0; пока ((bytesRead = file1Stream.Read (буфер, 0, буфер. Длина)) ! = 0) {encodedbuffer байта [] = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (буфер)); rs . Напишите (encodedbuffer, 0, bytesRead); //fileStream.Close } ();
если (file2.FileName! =string. Empty) {коллектор = шнур . Форма (headerTemplate, paramName, file2, contentType); headerbytes = System.Text.Encoding.ASCII.GetBytes (header); rs . Напишите (headerbytes, 0, headerbytes. Длина);
//fileStream = новое FileStream (file2.FileName, FileMode.Open, FileAccess.Read); Поток file2Stream = file2.InputStream; bytesRead = 0; пока ((bytesRead = file2Stream.Read (буфер, 0, буфер. Длина)) ! = 0) {encodedbuffer байта [] = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (буфер)); rs . Напишите (буфер, 0, bytesRead); //fileStream.Close } (); трейлер байта
} [] = System.Text.Encoding.ASCII.GetBytes (» \ r \ n--» + граница + «--\ r \ n»); rs . Напишите (трейлер, 0, трейлер. Длина); rs . Конец (); wresp = null
WebResponse; try {wresp = wr.GetResponse (); Поток stream2 = wresp.GetResponseStream (); StreamReader reader2 = новое StreamReader (stream2); //log.Debug (шнур. Форма (uploaded архив, реакция " сервера является следующим: {0}», reader2.ReadToEnd ())); реакция шнура
= reader2.ReadToEnd ();
если (response.ToLower, то (). Contains («success»)) {шнур ResponseURL = реакция . Подстрока (response.IndexOf (успех ": «) + «успех: ». Длина);
Result.Text = реакция + «
» + «src='" + ResponseURL »; else } Result.Text = реакция + « »; задвижки } (исключения ex) { //log.Error («архив ошибки uploading», ex); finally } { если (wresp! = null) {wresp . Конец (); wresp = null ; wr = null };
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-Pamboo }}
class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
|
class=
система " class= " id= " codeSnippet757099 using;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.IO;
using System.Net;
using System.Text;
using System.Collections;
using System.Collections.Specialized;
using System.Security.Cryptography;
using System.Configuration;
namespace YuuBabies
{
общественное частично _Default типа: System.Web.UI.Page
{
приватное secrect_code шнура;
защищенное пустое Page_Load (прислужник предмета, EventArgs e)
{
если (! IsPostBack)
{
secrect_code = ConfigurationManager.AppSettings [«Secret_code»];
Случайно случайно = новое случайно ();
randomNo int = случайно. Затем (99999);
transaction_id. Текст = (randomNo < 1000)? (1000 + randomNo) .ToString (): randomNo.ToString ();
обеспеченность. Текст = GetMD5Hash («yuz00b3byP» + transaction_id. Текст);
}
}
общественный шнур GetMD5Hash (шнур originalString)
{
textBytes байта [] = System.Text.Encoding.Default.GetBytes (originalString);
попытка
{
cryptHandler System.Security.Cryptography.MD5CryptoServiceProvider;
cryptHandler = новое System.Security.Cryptography.MD5CryptoServiceProvider ();
хэш байта [] = cryptHandler.ComputeHash (textBytes);
шнур ret = "";
foreach (байт a в хэше)
{
если (a < 16), то
ret += «0» + a.ToString («x»);
еще
ret += a.ToString («x»);
}
возвращение ret;
}
задвижка
{
ход;
}
}
защищенное пустое Submit_Click (прислужник предмета, EventArgs e)
{
HttpPostedFile file1 = image1Data.PostedFile;
HttpPostedFile file2 = image2Data.PostedFile;
если (file1.FileName! =string. Пусто)
{
Nvc NameValueCollection = новое NameValueCollection ();
nvc. Добавьте («image1DataID», image1DataID.Text);
nvc. Добавьте («image2DataID», image2DataID.Text);
nvc. Добавьте («transaction_id», transaction_id. Текст);
nvc. Добавьте («обеспеченность», обеспеченность. Текст);
nvc. Добавьте («misc1», misc1.Text);
nvc. Добавьте («misc2», misc2.Text);
nvc. Добавьте («misc3», misc3.Text);
nvc. Добавьте («misc4», misc4.Text);
//HttpUploadFile (" http://www.babypredictor.com.au/gateway/api.php», imagefile1FullPathName.Value, imagefile2FullPathName.Value, «архив», «изображение/JPEG», nvc);
HttpUploadFile («http://www.babypredictor.com.au/gateway/api.php», file1, file2, «архив», «изображение/JPEG», nvc);
}
}
публика пустое HttpUploadFile (url шнура, HttpPostedFile file1, HttpPostedFile file2, paramName шнура, contentType шнура, nvc NameValueCollection)
//public пустое HttpUploadFile (url шнура, шнур file1, шнур file2, paramName шнура, contentType шнура, nvc NameValueCollection)
{
//log.Debug (шнур. Форматируйте («Uploading {0} к {1}», архив, url));
зашнуруйте границу = «---------------------------» + DateTime.Now.Ticks.ToString («x»);
boundarybytes байта [] = System.Text.Encoding.ASCII.GetBytes («\ r \ n--» + граница + «\ r \ n»);
Wr HttpWebRequest = (HttpWebRequest) WebRequest.Create (url);
wr.ContentType = «многодетально/форм-данные; boundary=» + граница;
wr. Метод = «СТОЛБ»;
wr.KeepAlive = true;
wr. Документы = System.Net.CredentialCache.DefaultCredentials;
wr. Referer = url;
wr. Примите = «текст/xml, применение/xml, применение/xhtml+xml, текст/HTML; q=0.9, текст/обыкновенное толком; q=0.8, изображение/PNG, */*; q=0.5»;
wr.UserAgent = «Mozilla/4.0 (совместимое; MSIE 6.0; Шиндошсо НТ 5.1; Q312461; .NET CLR 1.0.3705)»;
//wr.Accept = «изображение/gif, image/x-xbitmap, изображение/JPEG, изображение/pjpeg, применение/vnd.ms-excel, применение/msword, application/x-shockwave-flash, */*»;
Rs потока = wr.GetRequestStream ();
formitem шнура, коллектор;
formdataTemplate шнура = «Содержани-Решение: форм-данные; name= \» {0} \ «\ r \ n \ r \ n {1}»;
foreach (ключ шнура в nvc. Ключи)
{
rs. Напишите (boundarybytes, 0, boundarybytes. Длина);
formitem = шнур. Форма (formdataTemplate, ключ, nvc [ключ]);
formitembytes байта [] = System.Text.Encoding.ASCII.GetBytes (formitem);
rs. Напишите (formitembytes, 0, formitembytes. Длина);
}
rs. Напишите (boundarybytes, 0, boundarybytes. Длина);
headerTemplate шнура = «Содержани-Решение: форм-данные; name= \» {0} \ «; filename= \» {1} \ «\ r \ nContent-Тип: {2} \ r \ n \ r \ n»;
коллектор = шнур. Форма (headerTemplate, paramName, file1, contentType);
headerbytes байта [] = System.Text.Encoding.ASCII.GetBytes (коллектор);
rs. Напишите (headerbytes, 0, headerbytes. Длина);
Поток file1Stream = file1.InputStream;
fileStream //FileStream = новое FileStream (file1.FileName, FileMode.Open, FileAccess.Read);
буфер байта [] = новый байт [4096];
bytesRead int = 0;
пока ((bytesRead = file1Stream.Read (буфер, 0, амортизирует. Длина)) ! = 0)
{
encodedbuffer байта [] = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (буфер));
rs. Напишите (encodedbuffer, 0, bytesRead);
}
//fileStream.Close ();
если (file2.FileName! =string. Пусто)
{
коллектор = шнур. Форма (headerTemplate, paramName, file2, contentType);
headerbytes = System.Text.Encoding.ASCII.GetBytes (коллектор);
rs. Напишите (headerbytes, 0, headerbytes. Длина);
//fileStream = новое FileStream (file2.FileName, FileMode.Open, FileAccess.Read);
Поток file2Stream = file2.InputStream;
bytesRead = 0;
пока ((bytesRead = file2Stream.Read (буфер, 0, амортизирует. Длина)) ! = 0)
{
encodedbuffer байта [] = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (буфер));
rs. Напишите (буфер, 0, bytesRead);
}
//fileStream.Close ();
}
трейлер байта [] = System.Text.Encoding.ASCII.GetBytes («\ r \ n--» + граница + «--\ r \ n»);
rs. Напишите (трейлер, 0, трейлер. Длина);
rs. Конец ();
Wresp = null WebResponse;
попытка
{
wresp = wr.GetResponse ();
Поток stream2 = wresp.GetResponseStream ();
StreamReader reader2 = новое StreamReader (stream2);
//log.Debug (шнур. Форма («uploaded архив, реакция сервера является следующим: {0}», reader2.ReadToEnd ()));
реакция шнура = reader2.ReadToEnd ();
если (response.ToLower, то (). Содержит («успех»))
{
шнур ResponseURL = реакция. Подстрока (response.IndexOf («успех: ") + «успех: ». Длина);
Result.Text = реакция + «
» + «src='" + ResponseURL »;
}
еще
Result.Text = реакция + « »;
}
задвижка (исключение ex)
{
//log.Error («архив ошибки uploading», ex);
}
окончательно
{
если (wresp! = null)
{
wresp. Конец ();
wresp = null;
}
wr = null;
}
}
}
}
|
class=
|