2016-05-02 14 views
0
var file = Request.Files[0]; 
        //HttpPostedFileBase hpf = Request.Files[0]; 

        if (file != null && file.ContentLength > 0) 
        { 
         //var fileName = Path.GetFileName(file.FileName);       
         var fileExtension = Path.GetExtension(file.FileName); 
         var allowedExtensions = new[] { ".bmp", ".png", ".jpg", "jpeg", ".gif" }; 
         if (allowedExtensions.Contains(fileExtension)) 
         { 
          //Delete files 
          var pathD = Server.MapPath("~/Avatar/1"); 
          var images = Directory.GetFiles(pathD, CustomerID + ".*"); 
          for (int i = 0; i < images.Length; i++) 
           System.IO.File.Delete(Server.MapPath(("~/Avatar/1/") + Path.GetFileName(images[i]))); 

          //Up files 
          var fileName = CustomerID + fileExtension; 
          var path = Path.Combine(Server.MapPath("~/Avatar/1/"), fileName); 

alles funktioniert gut, aber ein Problem mit einer Zeilekann von ‚System.Web.HttpPostedFileBase‘ zu ‚string‘ nicht konvertieren

      System.Drawing.Image imageToBeResized = System.Drawing.Image.FromFile(file); 
          int imageHeight = imageToBeResized.Height; 
          int imageWidth = imageToBeResized.Width; 
          int maxHeight = 400; 
          int maxWidth = 400; 
          imageHeight = (imageHeight * maxWidth)/imageWidth; 
          imageWidth = maxWidth; 

          if (imageHeight > maxHeight) 
          { 
           imageWidth = (imageWidth * maxHeight)/imageHeight; 
           imageHeight = maxHeight; 
          } 

          Bitmap bitmap = new Bitmap(imageToBeResized, imageWidth, imageHeight); 
          System.IO.MemoryStream stream = new MemoryStream(); 
          bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); 
          stream.Position = 0; 
          byte[] imasave = new byte[stream.Length + 1]; 
          stream.Read(imasave, 0, imasave.Length); 

          var newImage = System.Drawing.Image.FromStream(stream); 
          newImage.Save(path); 

unterhalb der Linie gaves mir Fehler bekommen, wenn ich Datei System.Drawing passieren .Image imageToBeResized = System.Drawing.Image.FromFile (Datei);

Antwort

0

System.Drawing.Image.FromFile akzeptiert ein Zeichenfolgenargument. Anstatt es zu geben, gibt er die Dateivariable den Pfad, den Sie von der Datei erhalten haben, und es wird funktionieren.

System.Drawing.Image.FromFile(Path.GetFileName(file.Filename)); 
            or 
    System.Drawing.Image.FromFile(Server.MapPath(Path.GetFileName(file.Filename)));  
+0

System.Drawing.Image imageToBeResized = System.Drawing.Image.FromFile (Path.GetFullPath (file.FileName)); das gab mir Fehler Ich möchte Pfad von jedem Bild geben, die in meinem Computer gelöst ist, aber ich kann keine Lösung? –

+0

System.Drawing.Image imageToBeResized = System.Drawing.Image.FromFile (Pfad.GetFullPfad (Datei.Dateiname)); das gab mir Fehler Ich möchte Pfad von jedem Bild geben, die in meinem Computer gelöst ist, aber ich kann keine Lösung? –

Verwandte Themen