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: 6: 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:
using System; 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 { allgemeines teilweises Kategorie _Default: System.Web.UI.Page { privates Schnur secrect_code; geschütztes leeres Page_Load (Gegenstandabsender, EventArgs e) { wenn (! IsPostBack) { secrect_code = ConfigurationManager.AppSettings [„Secret_code“]; Gelegentliches gelegentliches = neues gelegentliches (); int randomNo = gelegentlich. Zunächst (99999); transaction_id. Text = (randomNo < 1000)? (1000 + randomNo) .ToString (): randomNo.ToString (); Sicherheit. Text = GetMD5Hash („yuz00b3byP“ + transaction_id. Text); } } allgemeine Schnur GetMD5Hash (originalString Schnur) { Byte [] textBytes = System.Text.Encoding.Default.GetBytes (originalString); Versuch { System.Security.Cryptography.MD5CryptoServiceProvider cryptHandler; cryptHandler = neues System.Security.Cryptography.MD5CryptoServiceProvider (); Durcheinander des Bytes [] = cryptHandler.ComputeHash (textBytes); Schnur rösten = ""; foreach (Byte a im Durcheinander) { wenn (a < 16) += „0“ rösten + a.ToString („x“); sonst += a.ToString („x“) rösten; } Rückkehr röstet; } Fang { Wurf; } } geschütztes leeres Submit_Click (Gegenstandabsender, EventArgs e) { HttpPostedFile file1 = image1Data.PostedFile; HttpPostedFile file2 = image2Data.PostedFile; wenn (file1.FileName! =string. Leer) { NameValueCollection nvc = neues NameValueCollection (); nvc. Hinzufügen („image1DataID“, image1DataID.Text); nvc. Hinzufügen („image2DataID“, image2DataID.Text); nvc. Hinzufügen („transaction_id“, transaction_id. Text); nvc. Hinzufügen („Sicherheit“, Sicherheit. Text); nvc. Hinzufügen („misc1“, misc1.Text); nvc. Hinzufügen („misc2“, misc2.Text); nvc. Hinzufügen („misc3“, misc3.Text); nvc. Hinzufügen („misc4“, misc4.Text); //HttpUploadFile („http://www.babypredictor.com.au/gateway/api.php“, imagefile1FullPathName.Value, imagefile2FullPathName.Value, „Akte“, „Bild/JPEG“, nvc); HttpUploadFile („http://www.babypredictor.com.au/gateway/api.php“, file1, file2, „Akte“, „Bild/JPEG“, nvc); } } Öffentlichkeit leeres HttpUploadFile (Schnur-URL, HttpPostedFile file1, HttpPostedFile file2, Schnur paramName, Schnur contentType, NameValueCollection nvc) //public leeres HttpUploadFile (Schnur-URL, Schnur file1, Schnur file2, Schnur paramName, Schnur contentType, NameValueCollection nvc) { //log.Debug (Schnur. („, ladend {0} zu {1}“, Akte, URL) formatieren); Grenze aufreihen = „---------------------------“ + DateTime.Now.Ticks.ToString („x“); Byte [] boundarybytes = System.Text.Encoding.ASCII.GetBytes („\ r \ n--“ + Grenze + „\ r \ n“); HttpWebRequest wr = (HttpWebRequest) WebRequest.Create (URL); wr.ContentType = „Mehrfach-/Formdaten; boundary=“ + Grenze; wr. Methode = „PFOSTEN“; wr.KeepAlive = richten aus; wr. Bescheinigungen = System.Net.CredentialCache.DefaultCredentials; wr. Referer = URL; wr. Annehmen = „Text/xml, Anwendung/xml, Anwendung/xhtml+xml, Text/HTML; q=0.9, Text/normales; q=0.8, Bild/png, */*; q=0.5“; wr.UserAgent = „Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705)“; //wr.Accept = „Bild/GIF, image/x-xbitmap, Bild/JPEG, Bild/pjpeg, Anwendung/vnd.ms-excel, Anwendung/Msword, application/x-shockwave-flash, */*“; Strom rs = wr.GetRequestStream (); Schnur formitem, Überschrift; Schnur formdataTemplate = „Inhalt-Einteilung: Formdaten; name= \“ {0} \ „\ r \ n \ r \ n {1}“; foreach (Schnurschlüssel im nvc. Schlüssel) { rs. Schreiben (boundarybytes, 0, boundarybytes. Länge); formitem = Schnur. Format (formdataTemplate, Schlüssel, nvc [Schlüssel]); Byte [] formitembytes = System.Text.Encoding.ASCII.GetBytes (formitem); rs. Schreiben (formitembytes, 0, formitembytes. Länge); } rs. Schreiben (boundarybytes, 0, boundarybytes. Länge); Schnur headerTemplate = „Inhalt-Einteilung: Formdaten; name= \“ {0} \ „; filename= \“ {1} \ „\ r \ NContentArt: {2} \ r \ n \ r \ n“; Überschrift = Schnur. Format (headerTemplate, paramName, file1, contentType); Byte [] headerbytes = System.Text.Encoding.ASCII.GetBytes (Überschrift); rs. Schreiben (headerbytes, 0, headerbytes. Länge); Strom file1Stream = file1.InputStream; //FileStream fileStream = neues FileStream (file1.FileName, FileMode.Open, FileAccess.Read); Puffer des Bytes [] = neues Byte [4096]; int bytesRead = 0; während ((bytesRead = file1Stream.Read (Puffer, 0, dämpfen ab. Länge)) ! = 0) { Byte [] encodedbuffer = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (Puffer)); rs. Schreiben (encodedbuffer, 0, bytesRead); } //fileStream.Close (); wenn (file2.FileName! =string. Leer) { Überschrift = Schnur. Format (headerTemplate, paramName, file2, contentType); headerbytes = System.Text.Encoding.ASCII.GetBytes (Überschrift); rs. Schreiben (headerbytes, 0, headerbytes. Länge); //fileStream = neues FileStream (file2.FileName, FileMode.Open, FileAccess.Read); Strom file2Stream = file2.InputStream; bytesRead = 0; während ((bytesRead = file2Stream.Read (Puffer, 0, dämpfen ab. Länge)) ! = 0) { Byte [] encodedbuffer = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (Puffer)); rs. Schreiben (Puffer, 0, bytesRead); } //fileStream.Close (); } Anhänger des Bytes [] = System.Text.Encoding.ASCII.GetBytes („\ r \ n--“ + Grenze + „--\ r \ n“); rs. Schreiben (Anhänger, 0, Anhänger. Länge); rs. Abschluss (); WebResponse wresp = Null; Versuch { wresp = wr.GetResponse (); Strom stream2 = wresp.GetResponseStream (); StreamReader reader2 = neues StreamReader (stream2); //log.Debug (Schnur. Format („die geladene Akte, Bedienerantwort ist: {0}“, reader2.ReadToEnd ())); Schnurantwort = reader2.ReadToEnd (); wenn (response.ToLower (). Enthält („Erfolg“)) { Schnur ResponseURL = Antwort. Teilkette (response.IndexOf („Erfolg: ") + „Erfolg: “. Länge); Result.Text = Antwort + „“ + „“; } sonst Result.Text = Antwort + „“; } Fang (Ausnahme ex) { //log.Error („ladende Akte der Störung“, ex); } schließlich { wenn (wresp! = Null) { wresp. Abschluss (); wresp = Null; } wr = Null; } } } }
Es dauert einige Zeit, Ihren Code zu wiederholen, so mittlerweile ich wurde Ersatzzeit, Ihren Code auszuwerten, um Sie zu unterstützen, warum nicht Versuch etwas Heraus-vonkasten, der Ihre sofortige Notwendigkeit entsprechen kann. Einen Blick am folgenden URL bitte haben und das atta herunterladen
http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx
und den Code herunterladen, der im Artikel von hier erwähnt: http://aspnetupload.com/Download-Source.aspx