[C#] Verlust von Bilddaten bei Übertragung an Webserver
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
agent
archiv
ausgabe
bild
code
datei
datum
funktion
hinweis
http
ordnung
paar
photo
problem
server
string
strom
type
verzweiflung
windows
-
Hallo alle miteinander,
ich habe hier ein Problem, dass mich schön langsam an den Rand der Verzweiflung bringt.
Es geht darum Daten zu einem HTTP-Server zu übertragen. Die Daten sind eine XML-Datei ein paar Bilder (gif / jpeg) und ein paar DXF-Dateien die zusammen als Zip-Archiv übertragen werden sollen.
Wenn man den Ausgabe-Strom in eine Datei umleitet, dann ist das Archiv in Ordnung und vollständig.
Wenn ich das Archiv an meinen lokalen Testserver übertrage, dann ist das Archiv auch in Ordnung und vollständig.
Und jetzt das Problem:
Wenn man das Archiv an den entfernten Webserver überträgt, dann kommt zwar ein gültiges Zip-Archiv an aber die Bilder sind nicht mehr dabei.
Wenn irgendjemandem dazu etwas einfällt bzw. jemand eine Idee hat wäre ich sehr dankbar.
Hier der betroffene Code:
Noch ein Hinweis: die write*ToStream Funktionen flushen den Stream bevor sie zurückkehren er wird dadurch aber nicht geschlossen.public static void UploadToolData(string mandator, string password, tData td) { MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); UTF8Encoding enc = new UTF8Encoding(); string pwhash = byteToString(md5.ComputeHash(enc.GetBytes(password))); StringBuilder uri = new StringBuilder(); if(Configuration.LocalServer) { uri.Append("http://localhost/xxxxx.php?xxxxx="); uri.Append(HttpUtility.UrlEncode(mandator)); uri.Append("&xxxxxx="); uri.Append(pwhash); } else { uri.Append("http://"); uri.Append(Configuration.WebServiceAddress); uri.Append("/xxxxx/"); uri.Append(HttpUtility.UrlEncode(mandator)); uri.Append("/xxxxx/"); uri.Append(pwhash); } /* WebClient client = new WebClient(); client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); client.Headers.Add("content-type", "application/zip"); Stream outStream = client.OpenWrite(uri.ToString()); */ HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri.ToString()); request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"; request.ContentType = "application/zip"; request.Method = "POST"; request.Timeout = Configuration.WebServiceTimeout; Stream outStream = request.GetRequestStream(); /* FileStream outStream = new FileStream("test.zip",FileMode.OpenOrCreate); */ ZipOutputStream zos; try { zos = new ZipOutputStream(outStream); } catch(Exception e) { outStream.Close(); throw e; } try { StreamWriter sw = new StreamWriter(zos); XmlDocument doc = getInfoXml(td); zos.PutNextEntry("info.xml"); doc.Save(zos); string catalogIdentifier = MasterData.GetCatalogIdentifier(td.CatalogId); string productNumber; if(td.ProductId > 0) productNumber = MasterData.GetProductNumber(td.ProductId); else productNumber = td.ProductNumber; string attachment; if(td.AttachmentId > 0) attachment = MasterData.GetProductNumber(td.AttachmentId); else attachment = ""; string orientation; if(td.TopPerspective.Used) { orientation = td.TopPerspective.Orientation.ToLower(); zos.PutNextEntry( catalogIdentifier + "_" + productNumber + "_" + "highres_" + orientation + "_" + attachment + ".jpg"); writeJpegToStream(zos, td.TopPerspective.Photo); zos.PutNextEntry( catalogIdentifier + "_" + productNumber + "_" + "highres_" + orientation + "_" + attachment + ".gif"); writeGifToStream(zos, td.TopPerspective.Mask); zos.PutNextEntry( catalogIdentifier + "_" + productNumber + "_" + "extpx_" + orientation + "_" + attachment + ".dxf"); td.TopPerspective.Splines.WriteDxf(sw); zos.PutNextEntry( catalogIdentifier + "_" + productNumber + "_" + "steps_" + orientation + "_" + attachment + ".dxf"); td.TopPerspective.StepFunction.WriteDxf(sw); } if(td.SidePerspective.Used) { orientation = td.SidePerspective.Orientation.ToLower(); zos.PutNextEntry( catalogIdentifier + "_" + productNumber + "_" + "highres_" + orientation + "_" + attachment + ".jpg"); writeJpegToStream(zos, td.SidePerspective.Photo); zos.PutNextEntry( catalogIdentifier + "_" + productNumber + "_" + "highres_" + orientation + "_" + attachment + ".gif"); writeGifToStream(zos, td.SidePerspective.Mask); zos.PutNextEntry( catalogIdentifier + "_" + productNumber + "_" + "extpx_" + orientation + "_" + attachment + ".dxf"); td.SidePerspective.Splines.WriteDxf(sw); zos.PutNextEntry( catalogIdentifier + "_" + productNumber + "_" + "steps_" + orientation + "_" + attachment + ".dxf"); td.SidePerspective.StepFunction.WriteDxf(sw); } } finally { zos.Close(); outStream.Close(); } if(((HttpWebResponse)request.GetResponse()).StatusCode != HttpStatusCode.OK) throw new Exception("Wrong http response status."); }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage