사용자가 일부 이미지를 업로드 할 수있는 웹 사이트에서 작업하고 있습니다.스트림에서 이미지를로드하고 저장하면 "GDI +에서 일반 오류가 발생했습니다."
public async Task<ActionResult> Create(Advert advert, HttpPostedFileBase FileURL)
내가 fileName
내가 무작위로 생성 매개 변수입니다 FileURL.SaveAs(HttpContext.Server.MapPath(fileName))
를 사용하여 이미지를 저장할 수 있으며, 모든 것이 작동 : 그리고 업로드 된 이미지 여기
를 얻을 수 HttpPostedFileBase
를 사용하고있어 작업 헤더입니다 아주.
지금 내 이미지에 대한 썸네일을 생성 할, 그래서 다음 방법 작성 :
public static void SaveJpeg(string path, HttpPostedFileBase uploadedFile, int quality)
{
if (quality < 0 || quality > 100)
throw new ArgumentOutOfRangeException("quality must be between 0 and 100.");
// Encoder parameter for image quality
EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
// JPEG image codec
ImageCodecInfo codec = GetEncoderInfo("image/jpeg");
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
Image img = Image.FromStream(uploadedFile.InputStream);
var thumbnail = img.GetThumbnailImage(img.Width/5, img.Height/5, null, IntPtr.Zero);
//img.Save(path, codec, encoderParams);
thumbnail.Save(path, codec, encoderParams);
}
을하지만, 썸네일에게
PS를 저장할 때 내가 A generic error occured in GDI+
오류를 받고 있어요 : 내 코드를 테스트 메소드에 Image
을 전달하면 모든 것이 잘 작동합니다.
도와주세요.
내가 그 기능을 사용하지,하지만 결코 한 MSDN의 문서 [말] (https://msdn.microsoft.com/en-us/library/system.drawing.image.getthumbnailimage (V = vs.110) .aspx)에서 "callback"이 필요합니다. "대리자를 만들어야하고 대리자에 대한 참조를 콜백 매개 변수로 전달해야하지만 대리자는 사용되지 않습니다." 어떤 경우에는 'null'을 전달하는 것이 문제가 될 수 있습니다. –
MSDN의 "주의"섹션으로 이동하십시오 (https://msdn.microsoft.com/en-us/library/system.drawing(v=vs.110).aspx). Microsoft는 ASP.NET에서 이러한 클래스 사용을 지원하지 않습니다. 타사 솔루션을 사용해야합니다. –