kostenloser Webspace werbefrei: lima-city


[C#] Verlust von Bilddaten bei Übertragung an Webserver

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    darkpandemic

    Kostenloser Webspace von darkpandemic

    darkpandemic hat kostenlosen Webspace.

    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:
    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.");
        
    }
    Noch ein Hinweis: die write*ToStream Funktionen flushen den Stream bevor sie zurückkehren er wird dadurch aber nicht geschlossen.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!