PDA

View Full Version : سوال: آپلود عکس به سرور و تغییر سایز (تکراری نیست)



rezawili
شنبه 21 آبان 1390, 21:15 عصر
چطوری عکس رو آپلود کنم به سرور و سایزشو تغییر بده بعد میخوام فقط پسوند Jpg , GIF باشه و اسم عکس random آپلود بشه
زیاد گشتم با زبان Vb چیزی پیدا نکردم .

rezawili
یک شنبه 22 آبان 1390, 00:28 صبح
دوستان کمک نمیکنید ؟؟؟؟؟ :ناراحت:

programer-ir
یک شنبه 22 آبان 1390, 00:44 صبح
برای پسوند باید از


string name = FileUpload1.FileName;
string p = System.IO.Path.GetExtension(name);


استفاده کنی و پسوندشو بگیری

si6arp
یک شنبه 22 آبان 1390, 00:48 صبح
چطوری عکس رو آپلود کنم به سرور و سایزشو تغییر بده بعد میخوام فقط پسوند Jpg , GIF باشه و اسم عکس random آپلود بشه
زیاد گشتم با زبان Vb چیزی پیدا نکردم .

با سلام
1 - اول اینکه شما دارید توی تالار سی شارپ سوال از وی بی میپرسی !!! ( دقت کن کجا داری سوال میپرسی )
2 - اول خوب جستجو کن. امکان نداره توی سایت پیدا نشه.

asif1358
یک شنبه 22 آبان 1390, 01:18 صبح
با سلام
1 - اول اینکه شما دارید توی تالار سی شارپ سوال از وی بی میپرسی !!! ( دقت کن کجا داری سوال میپرسی )
2 - اول خوب جستجو کن. امکان نداره توی سایت پیدا نشه.

سلام
ظاهرا این تالار asp.net است؛ مگر اینکه بگوییم asp.net فقط با سی شارپ است.
برای تغییر تصویر هنگام بارگزاری میتونید از یکی از این دو متد استفاده کنید (البته به زبان سی شارپ است و باید به وی بی تبدیل کنید؛ کد وی بی اش الان دم دستم نبود):


public System.Drawing.Image ResizeImage(FileUpload f, Size newSize)
{
string fe = System.IO.Path.GetExtension(f.FileName).ToLower();
if ((fe != ".jpg") & (fe != ".jpeg") & (fe != ".gif") & (fe != ".png"))
throw new System.Exception("File is not valid");
System.Drawing.Image mg = System.Drawing.Image.FromStream(f.FileContent);
double ratio = 0d;
double myThumbWidth = 0d;
double myThumbHeight = 0d;
int x = 0;
int y = 0;

Bitmap bp;

if ((mg.Width / Convert.ToDouble(newSize.Width)) > (mg.Height /
Convert.ToDouble(newSize.Height)))
ratio = Convert.ToDouble(mg.Width) / Convert.ToDouble(newSize.Width);
else
ratio = Convert.ToDouble(mg.Height) / Convert.ToDouble(newSize.Height);
myThumbHeight = Math.Ceiling(mg.Height / ratio);
myThumbWidth = Math.Ceiling(mg.Width / ratio);


Size thumbSize = new Size((int)myThumbWidth, (int)myThumbHeight);
bp = new Bitmap(newSize.Width, newSize.Height);
x = (newSize.Width - thumbSize.Width) / 2;
y = (newSize.Height - thumbSize.Height);

Graphics g = Graphics.FromImage(bp);
g.SmoothingMode = SmoothingMode.HighSpeed;
g.InterpolationMode = InterpolationMode.Low;
g.PixelOffsetMode = PixelOffsetMode.HighSpeed;
Rectangle rect = new Rectangle(x, y, thumbSize.Width, thumbSize.Height);
g.DrawImage(mg, rect, 0, 0, mg.Width, mg.Height, GraphicsUnit.Pixel);
return bp;
}

//Resize Without aspect ratio
public System.Drawing.Image ResizeImage2(System.Drawing.Image mg, Size newSize)
{
Bitmap bp;
bp = new Bitmap(newSize.Width, newSize.Height);
Graphics g = Graphics.FromImage(bp);
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
Rectangle rect = new Rectangle(0, 0, newSize.Width, newSize.Height);
g.DrawImage(mg, rect, 0, 0, mg.Width, mg.Height, GraphicsUnit.Pixel);
return bp;
}

//نحوه استفاده

System.Drawing.Image mg = ResizeImage(FileUpload1, new Size(50, 60));
mg.Save(Server.MapPath("~/Images/" + FileUpload1.FileName));