Fråga : Posta avbildar sparar [binära data] using HttpWebRequest kuggningar.

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: >

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 "

Svar : Posta avbildar sparar [binära data] using HttpWebRequest kuggningar.

Det tar någon tid att granska ditt kodifierar, så i mellantiden jag skulle extra- tid att utvärdera ditt kodifierar för att hjälpa dig, varför inte försök något ut-av-boxas som kan serven ditt omgående behov. Behaga har en look på efter URLEN och nedladdar attaen

http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx

och nedladda kodifiera som härifrån nämns i artikeln: http://aspnetupload.com/Download-Source.aspx

Andra lösningar  
 
programming4us programming4us