0

前に表示されていた写真が突然、ページに表示されなくなり、フォルダをチェックするのをやめました * 画像をクリックしても表示されないことがわかりました。コードをデバッグすると、コメント行が原因であることがわかりました。とにかく、以下のコードはストリームを操作していましたか?

public ActionResult UploadPhoto(UserPhotoUploadModel photoFileModel)
{
        HttpPostedFileBase photoFile = photoFileModel.PhotoFile;
    string uploadPath = Server.MapPath("~/Content/users/photos");
    string autoFileName = String.Format("{0}_{1}", Guid.NewGuid().ToString(), filename);
    string fileDestName = Path.Combine(uploadPath, autoFileName);

    //Starting from here is where the issue lies
    Stream imgStream = photoFile.InputStream;
    using (imgStream)
    {
        Image img = Bitmap.FromStream(imgStream);
        int width = img.Width;
        int height = img.Height;

        if (width > 100 || height > 100)
        {
            ModelState.AddModelError("PhotoFile", "Photo dimension should be 100 by 100 or less");
            return View(photoFileModel);
        }
    }
    //the issue ends here

    photoFile.SaveAs(fileDestName);

    return RedirectToAction("Profile", new {id = loggedinUser.ProviderUserKey});
}

保存されたファイルには、JPG などの適切な画像拡張子が付いていました。アップロードされた画像のサイズを決定するためにストリームを使用しています。

コメント部分がこの問題の原因です。入力ストリームをそのままにしてこれを行うにはどうすればよいですか?

ありがとう。

4

1 に答える 1

0

問題は次の行です。

 return View(photoFileModel);

コードがこの行に到達すると、メソッドは終了します。したがって、次の行は実行されません。

photoFile.SaveAs(fileDestName);  
于 2012-10-06T18:34:52.663 に答える