2016-11-06 20 views
1

私は一度に複数の画像をアップロードできるasp.net mvcアプリケーションを持っていますが、正常に動作しますが、オリジナルからサムネイル画像を作成する際に問題があります。ここでアップロードされた画像のサムネイルを作成

はコードです:

[HttpPost] 
     public ActionResult SaveUploadedFile() 
     { 
      bool isSavedSuccessfully = true; 
      string fName = ""; 

      try 
      { 
       foreach (string fileName in Request.Files) 
       { 
        HttpPostedFileBase file = Request.Files[fileName]; 

        fName = file.FileName; 

        if (file != null && file.ContentLength > 0) 
        { 
         var originalDirectory = new DirectoryInfo(string.Format("{0}Images", Server.MapPath(@"\"))); 

         string pathString = Path.Combine(originalDirectory.ToString(), "Gallery"); 
         string pathString2 = Path.Combine(originalDirectory.ToString(), "Gallery\\Thumbs"); 

         //var fileName1 = Path.GetFileName(file.FileName); 

         bool exists = Directory.Exists(pathString); 
         bool exists2 = Directory.Exists(pathString2); 

         if (!exists) 
          Directory.CreateDirectory(pathString); 

         if (!exists2) 
          Directory.CreateDirectory(pathString2); 

         var path = string.Format("{0}\\{1}", pathString, file.FileName); 

         file.SaveAs(path); 

         //WebImage img = new WebImage(file.InputStream); 
         WebImage img = new WebImage(fileName); 
         //if (img.Width > 1000) 
         img.Resize(100, 100); 
         img.Save(pathString2); 

        } 

       } 

      } 
      catch (Exception ex) 
      { 
       isSavedSuccessfully = false; 
      } 

      if (isSavedSuccessfully) 
      { 
       return Json(new { Message = fName }); 
      } 
      else 
      { 
       return Json(new { Message = "Error in saving file" }); 
      } 
     } 

だから、基本的file.SaveAs(path);は動作し、私は実際に画像を保存、最後の行ですが、その行の後(私は親指を作成して保存しようとするが、それは動作しません。私はただし、以前に作成したThumbsフォルダを取得してください)。

また、私は親指を作成して保存しようとしているので、それを削除してもそれを取得しないと実際のエラーを返す方法はわかりませんエラーは何か

+0

たぶんimg.Save(pathString2) 'でpathString2''ので; ' "ギャラリー\\親指" の値を持っており、あなたがパッチを適用するファイル名を追加するのを忘れ。 'catch'にブレークポイントを設定し、例外がスローされるのを見てください。 – Sylwekqaz

+0

それはnullです。なぜ私はここに割り当てたフルパスの代わりにその値を持っていますか?stringPathString2 = Path.Combine(originalDirectory.ToString()、 "Gallery \\ Thumbs"); ?そして、私は「パッチを当てるためにファイル名を追加することを忘れない」と理解していません。例を挙げてください。 – frc

+0

pathstring2が完全で正しいパスを持っているので、私はブレークポイントをチェックしました。 – frc

答えて

0

答えはこれです:

var path2 = string.Format("{0}\\{1}", pathString2, file.FileName) 

WebImage img = new WebImage(file.InputStream); 
img.Resize(250, 250); 
img.Save(path2); 
関連する問題