ورود

View Full Version : سوال: راهنمایی برای حل خطای به وجود آمده هنگام آپلود فایل به سرور



aminghaderi
چهارشنبه 23 تیر 1389, 05:39 صبح
درود بر همه.
یه قطعه کدی نوشتم که قراره یه فایل عکس رو Re size کنه و در فولدری ذخیره کنه؟!
مشکل :
زمانی که پسوند فایل با حروف بزرگ باشه ، یه خطایی می گیری که اصلا مشخص نیست ، مشکل مربوط به کدوم بخش می شه؟!
جالبتر اینه که BreackPoint هم عمل نمی کنه؟!
و جالبتر اصلا وارد قسمتی که کد نوشتم نمی شه؟! (ظاهرا).
کد نوشته شده:

System.Drawing.Image ResizeImage(System.Drawing.Image image, int newWidth, int newHeight)
{
var thumbnailBitmap = new Bitmap(newWidth, newHeight);
var thumbnailGraph = Graphics.FromImage(thumbnailBitmap);
thumbnailGraph.CompositingQuality = CompositingQuality.HighQuality;
thumbnailGraph.SmoothingMode = SmoothingMode.HighQuality;
thumbnailGraph.InterpolationMode = InterpolationMode.HighQualityBicubic;
var imageRectangle = new Rectangle(0, 0, newWidth, newHeight);
thumbnailGraph.DrawImage(image, imageRectangle);
thumbnailGraph.Dispose();
return thumbnailBitmap;
}

protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string ext = Path.GetExtension(FileUpload1.FileName);
if (ext==".jpgeeeeeeeeeeeeeeeeeeeeeeeeeeee")
{
//================================================== ==========
//== Resizing Original Image And Storage Images On Server .
//================================================== ==========
System.Drawing.Image objImage, ObjBigImg, ObjSmallImg;
objImage = System.Drawing.Image.FromStream(FileUpload1.Posted File.InputStream);
if (objImage.Width > 650)
{ ObjBigImg = ResizeImage(objImage, 650, (int)(objImage.Height * (650.0 / objImage.Width))); }
else
{ ObjBigImg = objImage; }
ObjSmallImg = ResizeImage(objImage, 100, 100);
GC.Collect();
Bitmap BmpBigImg = new Bitmap(ObjBigImg);
Bitmap BmpSmallImg = new Bitmap(ObjBigImg);
String FilePathBigImg = "Image1/" + FileUpload1.FileName.ToLower();
String FilePathSmallImg = "Image2/" + FileUpload1.FileName.ToLower();
ObjBigImg.Save(Request.PhysicalApplicationPath + FilePathBigImg, System.Drawing.Imaging.ImageFormat.Jpeg);
ObjSmallImg.Save(Request.PhysicalApplicationPath + FilePathSmallImg, System.Drawing.Imaging.ImageFormat.Jpeg);
objImage.Dispose();
ObjBigImg.Dispose();
ObjSmallImg.Dispose();
//================================================== ==========
//== Insert Image Physical Address intro the DataBase .
//================================================== ==========
//...
}
}
}

تصویر خطا هم زمیمه شده.

به نظر شما مشکل کجاست ؟؟؟
چطوری می شه رفعش کرد؟؟؟

با سپاش.

aminghaderi
چهارشنبه 23 تیر 1389, 06:59 صبح
مشخص شد.
مشکل پسوند ها نبود ، مشکل بالا بودن حجم تصاویر که قراره آپلود بشه ، بود.
تصاویر جحمشان حدودا بین 4 تا 6 مگابایت هست که با کم کردن حجم تصاویر مشکل حل شد.

hlikehamed
چهارشنبه 23 تیر 1389, 16:45 عصر
اگر حجم فایلها زیاده می تونی توی تنظیمات web.config تییرات بدی تا مقدار پیشفرض تغییر کنه و بتونی فایل های سنگین رو هم آپ کنی.

aminghaderi
چهارشنبه 23 تیر 1389, 17:17 عصر
اگر حجم فایلها زیاده می تونی توی تنظیمات web.config تییرات بدی تا مقدار پیشفرض تغییر کنه و بتونی فایل های سنگین رو هم آپ کنی.


آره ، ولی من این کار رو قبلا انجام ندادم.
ممنون می شم راهنمایی کنید .

hlikehamed
چهارشنبه 23 تیر 1389, 17:34 عصر
فایل web.config رو باز کن.

توی بخش system.web این بخش رو اضافه کن.


<httpRuntime maxRequestLength="51200" executionTimeout="51200"/>

البته گزینه های دیگه ای هم داره.
maxRequestLength اندازه حجم فایله بر حسب کیلو بایت میتونی تغییرش بدی به حجمی که خودت میخوای
executionTimeout هم زمان اپلوده.

موفق باشی