Förmiddag som I vänder mot problem i utnämning, avbildar sparar som binära data till en webpage.
If som jag postar bildadatan using bilda, märker Action=URL, och Method= " postar ", I M som får den required för den xmlns="
för 999/xhtml för nofollow " " för rel= " för _blank " target= " > " flerdelat/, bildar-data postar " för http://www.babypredictor.com.au/gateway/api.php för action=" för nofollow " > http://www.babypre/>.au/gatewadictor.comy/api.php " " för rel= " för _blank " target= " > CelebLEGITIMATIONEN för image1Data:
image1Data: image2Data för/> för FileUpload ID= " image1Data " runat=" server ": OR image2Data:
transaction_id:
security: cd691389 "/>
misc1:
misc2 för text= " miscval1 " för TextBox ID= " misc1 ":
misc3 för text= " miscval2 " för TextBox ID= " misc2 ":
misc4 för text= " miscval3 " för TextBox ID= " misc3 ": för/>
" för server " för runat= för text= " miscval4 " för TextBox ID= " misc4 ": Knäppas ID= " sänder " runat= " serveren " Text= " sänder " -/>
But, om I-försök att överföra avbildadatan using ”HTTPWebRequesten”, genom att bilda titelraderna, data och släp, I M som är kompetent att få svaret från den postade URLEN, men, avbildar inte morpheds. [För http://www.babypredictor.com.au/gateway/api.php” ”för href= " för http://www.babypredictor. eway/api.php för com.au/gat” mottar 1, eller 2 avbildar oss postar och morfen dem in i en singelpic och överför framgångURLEN].
Looks I M som gör något, missförstår i HTTP-meddelandet som bildar stunder som postar till uppsätta som målURLEN. Kan någon behaga hjälper mig att figurera utfärda, och att få det arbetsnågot liknande som det normala bildar postar.
Attached är min lösning. Du kan öppna genom att använda VS 2008.
I som försöks using Firebug för att testa de rå datan för postaHTTP för fel, och den ser nästan samma för båda BILDAR utnämning och HTTPWebRequest utnämning, men avbildar morpheds inte för min mer sistnämnd. Wishen någon kan finna utfärda, och hjälp me.
Here är min för HttpUploadFile för allmänhet för det HTTPWebRequest postnummeret Snippet.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// utan laga kraft utan laga kraft HttpUploadFile (stränga url, stränger file1, stränger file2, stränger paramName, stränger contentType, NameValueCollection nvc), { //log.Debug (stränga url, HttpPostedFile file1, HttpPostedFile file2, stränger paramName, stränger contentType, NameValueCollection nvc), //public (stränga. Formatera ( " Uploading {0} {1}”, sparar, url)),; stränger gräns = ”,---------------------------” + DateTime.Now.Ticks.ToString (”x”); boundarybytes för byte för [] = System.Text.Encoding.ASCII.GetBytes (” för \ r \ n--” + gräns + ”\ r \ n”); wr för
HttpWebRequest = (HttpWebRequest) WebRequest.Create (url); wr.ContentType = ”flerdelat/bilda-data; boundary=” + gräns; wr för . Metoden = ”POSTAR”; wr.KeepAlive = true; wr för . Vitsord = System.Net.CredentialCache.DefaultCredentials; wr.Referer = url;
wr.Acceptera = ”text/xml, applikation/xml, application/xhtml+xml, text/html; q=0.9 text/plain; q=0.8, image/png, */*; q=0.5”; wr.UserAgent = ”kompatibel Mozilla/4.0 (; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705)”; //wr.Accept = ”avbildar/gif, image/x-xbitmap, avbildar/jpeg, avbildar/pjpeg, application/vnd.ms-excel, applikation/msworden, application/x-shockwave-flash, */*”;
strömmer rs = wr.GetRequestStream ();
stränger formitem, titelrad;
stränger formdataTemplate = ”Tillfredsställa-Disposition: bilda-data; name= \” {0} \ ”\ r \ n \ r \ n {1}”; foreach för (stränga nyckel- i nvc. Stämm) {rs för . Skriv (boundarybytes, 0, boundarybytes. Längd); formitem för = stränger. Formatera (formdataTemplate, nyckel-, nvc [stämma],); formitembytes för byte för [] = System.Text.Encoding.ASCII.GetBytes (formitem); rs.Skriv (formitembytes, 0, formitembytes. Längd); rs för
för }. Skriv (boundarybytes, 0, boundarybytes. Längd); för stränger headerTemplate = ”Tillfredsställa-Disposition: bilda-data; name= \” {0} \ ”; filename= \” {1} \ ”\ r \ nContent-Type: {2} \ r \ n \ r \ n”; titelraden för = stränger. Formatera (headerTemplate, paramName, file1, contentType); headerbytes för byte för [] = System.Text.Encoding.ASCII.GetBytes (header); rs för . Skriv (headerbytes, 0, headerbytes. Längd);
strömmer file1Stream = file1.InputStream; fileStream för //FileStream = nya FileStream (file1.FileName, FileMode.Open, FileAccess.Read); byten för [] fungera som buffert = ny byte [4096]; bytesRead för int = 0; stunder för ((bytesRead = file1Stream.Read (fungera som buffert, 0, fungera som buffert. Längd)) ! = 0) {encodedbuffer för byten för [] = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (fungera som buffert)),; rs för . Skriv (encodedbuffer, 0, bytesRead); //fileStream.Close för för } ();
om (file2.FileName! =string. Empty) { titelrad = stränger. Formatera (headerTemplate, paramName, file2, contentType); headerbytes för = System.Text.Encoding.ASCII.GetBytes (header); rs för . Skriv (headerbytes, 0, headerbytes. Längd);
//fileStream = nya FileStream (file2.FileName, FileMode.Open, FileAccess.Read); strömmer file2Stream = file2.InputStream; bytesRead för = 0; stunder för ((bytesRead = file2Stream.Read (fungera som buffert, 0, fungera som buffert. Längd)) ! = 0) {encodedbuffer för byten för [] = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (fungera som buffert)),; rs för . Skriv (fungera som buffert, 0, bytesRead); //fileStream.Close för } (); släp för byte för
för } [] = System.Text.Encoding.ASCII.GetBytes (” för \ r \ n--” + gräns + ”,--\ r \ n”); rs för . Skriv (släp, 0, släp. Längd); rs för . Nära (); wresp för
WebResponse = ogiltigt; try {wresp för = wr.GetResponse, för (); strömmer stream2 = wresp.GetResponseStream (); StreamReader reader2 = nya StreamReader (stream2); //log.Debug (stränga. Formatera ( " sparar uploaded, serversvaret är: {0}”, reader2.ReadToEnd ()));
stränger svar = reader2.ReadToEnd ();
om (response.ToLower (). Contains (”success”)) { stränger ResponseURL = svar. Substring (response.IndexOf (framgång för ": ”) + ”framgång: ”. Längd);
Result.Text = svar + ”
” + ””; else för för } Result.Text = svar + ” ”; för } fångar { //log.Error (för undantagsföre detta) (”felet som uploading, sparar”, före detta); finally { för för } för om (wresp! = ogiltig) {wresp för . Nära (); wresp för = ogiltigt; wr för för } = ogiltigt;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-Pamboo för för }}
> för
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:
" codeBody "
system för class= för 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
{
offentligt partiskt klassificerar _Default: System.Web.UI.Page
{
privat stränga secrect_code;
skyddade utan laga kraft Page_Load (anmärka avsändaren, EventArgs e),
{
om (! IsPostBack)
{
secrect_code = ConfigurationManager.AppSettings [”Secret_code”];
Slumpmässigt slumpmässigt = nytt slumpmässigt ();
int-randomNo = slumpmässigt. Därefter (99999);
transaction_id. Text = (randomNoen < 1000)? (1000 + randomNo) .ToString (): randomNo.ToString ();
säkerhet. Text = GetMD5Hash (”yuz00b3byP” + transaction_id. Text);
}
}
allmänhet stränger GetMD5Hash (stränga originalString),
{
textBytes för byte [] = System.Text.Encoding.Default.GetBytes (originalString);
försök
{
System.Security.Cryptography.MD5CryptoServiceProvider-cryptHandler;
cryptHandler = ny System.Security.Cryptography.MD5CryptoServiceProvider ();
pölsa för byte [] = cryptHandler.ComputeHash (textBytes);
stränga retur = "";
foreach (byte a i pölsa)
{
om (a < 16)
retur += ”0” + a.ToString (”x”);
annars
retur += a.ToString (”x”);
}
retur retur;
}
fånga
{
kast;
}
}
skyddade utan laga kraft Submit_Click (anmärka avsändaren, EventArgs e),
{
HttpPostedFile file1 = image1Data.PostedFile;
HttpPostedFile file2 = image2Data.PostedFile;
om (file1.FileName! =string. Tomt)
{
NameValueCollection nvc = nya NameValueCollection ();
nvc. Tillfoga (”image1DataID”, image1DataID.Text);
nvc. Tillfoga (”image2DataID”, image2DataID.Text);
nvc. Tillfoga (”transaction_id”, transaction_id. Text);
nvc. Tillfoga (”säkerhet”, säkerhet. Text);
nvc. Tillfoga (”misc1”, misc1.Text);
nvc. Tillfoga (”misc2”, misc2.Text);
nvc. Tillfoga (”misc3”, misc3.Text);
nvc. Tillfoga (”misc4”, misc4.Text);
//HttpUploadFile (”http://www.babypredictor.com.au/gateway/api.php”, imagefile1FullPathName.Value, imagefile2FullPathName.Value, ”sparar”, ”avbildar/jpeg”, nvc);
HttpUploadFile (”http://www.babypredictor.com.au/gateway/api.php”, file1, file2, ”sparar”, ”avbildar/jpeg”, nvc);
}
}
offentliga utan laga kraft HttpUploadFile (stränga url, HttpPostedFile file1, HttpPostedFile file2, stränger paramName, stränger contentType, NameValueCollection nvc),
//public utan laga kraft HttpUploadFile (stränga url, stränger file1, stränger file2, stränger paramName, stränger contentType, NameValueCollection nvc),
{
//log.Debug (stränga. Formatera (”Uploading {0} till {1}”, spara, url)),;
stränga gränsen = ”,---------------------------” + DateTime.Now.Ticks.ToString (”x”);
boundarybytes för byte [] = System.Text.Encoding.ASCII.GetBytes (”\ r \ n--” + gräns + ”\ r \ n”);
HttpWebRequest wr = (HttpWebRequest) WebRequest.Create (url);
wr.ContentType = ”flerdelat/bilda-data; boundary=” + gräns;
wr. Metoden = ”POSTAR”;
wr.KeepAlive = true;
wr. Vitsord = System.Net.CredentialCache.DefaultCredentials;
wr. Referer = url;
wr. Acceptera = ”text/xml, applikation/xml, applikationen/xhtml+xml, text/html; q=0.9 text/vanligt; q=0.8 avbildar/png, */*; q=0.5”;
wr.UserAgent = ”kompatibel Mozilla/4.0 (; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705)”;
//wr.Accept = ”avbildar/gif, image/x-xbitmap, avbildar/jpeg, avbildar/pjpeg, applikationen/vnd.ms-excel, applikation/msworden, application/x-shockwave-flash, */*”;
Strömma rs = wr.GetRequestStream ();
stränga formitem, titelrad;
stränga formdataTemplate = ”Tillfredsställa-Disposition: bilda-data; name= \” {0} \ ”\ r \ n \ r \ n {1}”;
foreach (stränga nyckel- i nvc. Stämm),
{
rs. Skriv (boundarybytes, 0, boundarybytes. Längd);
formitem = stränger. Formatera (formdataTemplate, nyckel-, nvc [stämma],);
formitembytes för byte [] = System.Text.Encoding.ASCII.GetBytes (formitem);
rs. Skriv (formitembytes, 0, formitembytes. Längd);
}
rs. Skriv (boundarybytes, 0, boundarybytes. Längd);
stränga headerTemplate = ”Tillfredsställa-Disposition: bilda-data; name= \” {0} \ ”; filename= \” {1} \ ”\ r \ nContent-Skriva: {2} \ r \ n \ r \ n”;
titelraden = stränger. Formatera (headerTemplate, paramName, file1, contentType);
headerbytes för byte [] = System.Text.Encoding.ASCII.GetBytes (titelrad);
rs. Skriv (headerbytes, 0, headerbytes. Längd);
Strömma file1Stream = file1.InputStream;
//FileStream fileStream = nya FileStream (file1.FileName, FileMode.Open, FileAccess.Read);
byten [] fungera som buffert = ny byte [4096];
int-bytesRead = 0;
stunder ((bytesRead = file1Stream.Read (fungera som buffert, 0, fungera som buffert. Längd)) ! = 0)
{
encodedbuffer för byte [] = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (fungera som buffert)),;
rs. Skriv (encodedbuffer, 0, bytesRead);
}
//fileStream.Close ();
om (file2.FileName! =string. Tomt)
{
titelraden = stränger. Formatera (headerTemplate, paramName, file2, contentType);
headerbytes = System.Text.Encoding.ASCII.GetBytes (titelrad);
rs. Skriv (headerbytes, 0, headerbytes. Längd);
//fileStream = nya FileStream (file2.FileName, FileMode.Open, FileAccess.Read);
Strömma file2Stream = file2.InputStream;
bytesRead = 0;
stunder ((bytesRead = file2Stream.Read (fungera som buffert, 0, fungera som buffert. Längd)) ! = 0)
{
encodedbuffer för byte [] = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (fungera som buffert)),;
rs. Skriv (fungera som buffert, 0, bytesRead);
}
//fileStream.Close ();
}
släp för byte [] = System.Text.Encoding.ASCII.GetBytes (”\ r \ n--” + gräns + ”,--\ r \ n”);
rs. Skriv (släp, 0, släp. Längd);
rs. Nära ();
WebResponse wresp = ogiltigt;
försök
{
wresp = wr.GetResponse ();
Strömma stream2 = wresp.GetResponseStream ();
StreamReader reader2 = nya StreamReader (stream2);
//log.Debug (stränga. Formatera (”spara uploaded, serversvaret är: {0}”, reader2.ReadToEnd ()));
stränga svaret = reader2.ReadToEnd ();
om (response.ToLower (). Innehåller (”framgång”))
{
stränga ResponseURL = svaret. Substring (response.IndexOf (”framgång: ”) + ”framgång: ”. Längd);
Result.Text = svar + ”
” + ””;
}
annars
Result.Text = svar + ” ”;
}
fånga (undantagsföre detta)
{
//log.Error (”felet som uploading, sparar”, före detta);
}
slutligen
{
om (wresp! = ogiltigt)
{
wresp. Nära ();
wresp = ogiltigt;
}
wr = ogiltigt;
}
}
}
}
" klar "
|