Hi,
ich möchte gerne einen upload über eine seite durchführen per httpwebrequest.
Mein 1. Versuch (code ausm forum zusammenkopiert):
//###########
//einloggen
//###########
string url = string.Format("http://www.die_website.de/user/login.php");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Accept = "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8";
request.KeepAlive = true;
request.ContentType = @"application/x-www-form-urlencoded";
request.Referer = string.Format("http://www.die_website.de/user/login.php");
request.CookieContainer = new CookieContainer();
// Send the log-in data
string postData = string.Format("user=test&pass=test&submit=Anmelden");
request.Method = "POST";
byte[] postBuffer = System.Text.Encoding.GetEncoding(1252).GetBytes(postData);
request.ContentLength = postBuffer.Length;
Stream postDataStream = request.GetRequestStream();
postDataStream.Write(postBuffer, 0, postBuffer.Length);
postDataStream.Close();
// Get the response
HttpWebResponse myResponse = (HttpWebResponse)request.GetResponse();
//###########
//datei hochladen
//###########
url = string.Format("http://www.die_website.de/upload.php");
request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Accept = "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8";
request.KeepAlive = true;
request.ContentType = @"application/x-www-form-urlencoded";
request.Referer = string.Format("http://www.die_website.de/upload.php");
// Send the log-in data
postData = string.Format("datei=C:/test.zip&katid=0&submit=Hochladen");
request.Method = "POST";
postBuffer = System.Text.Encoding.GetEncoding(1252).GetBytes(postData);
request.ContentLength = postBuffer.Length;
postDataStream = request.GetRequestStream();
postDataStream.Write(postBuffer, 0, postBuffer.Length);
postDataStream.Close();
// Get the response
myResponse = (HttpWebResponse)request.GetResponse();
Es klappt leider nicht. Ich weiß auch nicht, was httpWebResponse zurückliefert, wenns geklappt haben sollte.
vielen dank für eure hilfe!
Du schickst ja auch gar net deine Datei an den Server sondern einfach den String "datei=C:/test.zip&katid=0&submit=Hochladen". Du müsstest die test.zip einlesen und diese Daten dann in den postDataStream schreiben.
Baka wa shinanakya naoranai.
Mein XING Profil.
postData = string.Format("datei=C:/test.zip&katid=0&submit=Hochladen");
So gehts auf jeden Fall nicht. Du musst die Bytes vom Bild mitschicken. Wenn ich hier was hochladen zeigt mir Fiddler das an:
-----------------------------7d69c3b12058c
Content-Disposition: form-data; name="MAX_FILE_SIZE"
204800
-----------------------------7d69c3b12058c
Content-Disposition: form-data; name="attachment_file"; filename="C:\bild.jpg"
Content-Type: image/pjpeg
Danach kommt vermutlich das Bild. Wie du das jetzt genau machst weiss ich auch nicht. Im Anhang hast du den Request als txt.
[EDIT von herbivore]Dateianhang gelöscht[/EDIT]
Jup, es kommt des Bild. Das sind nämlich die Exif Tags bei die uns schön verraten das das Bild mit Adobe Photoshop CS gespeichert wurde 😉
ÿØÿàJFIFHHÿá ExifMM*bj(1r2‡i¤ÐHHAdobe Photoshop CS Windows2005:01:28 13:53:34 ÿÿ x A&(. æHHÿØÿàJFIFHHÿí Adobe_CMÿîAdobed€ÿÛ„
😁
Baka wa shinanakya naoranai.
Mein XING Profil.
könnt ihr mal sagen, wie ihr den code angepasst habt?
ich kann auch nicht ganz deuten obs bei euch jetzt geklappt hat oder nicht.
Original von ZiMD
Wie du das jetzt genau machst weiss ich auch nicht.