PDA

View Full Version : سوال: بدست آوردن سایز تصویر انتخابی از fileupload



az.heidarzadeh
پنج شنبه 08 دی 1390, 14:56 عصر
سلام
من یه fileupload دارم که میخوام چک کنم سایز فایل تصویر انتخابیم از یه سایزی مثلا 800 در 600 پیکسل بیشتر نشه خیلی سرچ کردم اما هیچ پراپرتی واسش پیدا نکردم. لطفا راهنماییم کنید خیلی فورسه
ممنون...

mmd2009
پنج شنبه 08 دی 1390, 16:28 عصر
با سلام

fileupload که نداریم تو winApp :متفکر:

اگر حدسم درست باشه منظور شما استفاده از OpenFileDialog هست که اگر هست باید به این صورت عمل کنید :


using (var ofd = new OpenFileDialog())
{
ofd.Multiselect = true;

if (ofd.ShowDialog() != DialogResult.OK) return;

foreach (var file in ofd.FileNames)
{
using (var img = Image.FromFile(file))
{
MessageBox.Show(string.Format("X : {0} and Y : {1}", img.Size.Width, img.Size.Height));
}
}
}


ولی یک نکته دیگه رو بهتون بگم که شاید شما روزی نیاز داشته باشید که فرضا اندازه Length یک فایل رو شناسایی کنید حالا هر فایلی کافیه اونم به این صورت چک کنید :



using (var ofd = new OpenFileDialog())
{
ofd.Multiselect = true;

if (ofd.ShowDialog() != DialogResult.OK) return;

foreach (var fileInfo in ofd.FileNames.Select(file => new FileInfo(file)))
{
MessageBox.Show(fileInfo.Length.ToString());
}
}



موفق باشید

davoodipoor
شنبه 10 دی 1390, 08:40 صبح
این سوال مال من بود که دوستم مطرحش کرده، شاید من باید بهش می گفتم که دارم با WebApp کار می کنم. من دقیقا منظورم همون کنترل FileUpload در وب بود که با استفاده از کد
FileUpload_FilePath.PostedFile.ContentLength می تونم حجم فایل رو بدست بیارم. حالا مشکلم در سایز عکسه و می خوام کاربر را محدود کنم که سایز عکسش فقط 600 در 800 پیکسل باشه. لطفا راهنماییم کنید. خیلی مهم و فوریه...

msabeghi
شنبه 10 دی 1390, 10:55 صبح
این کد چک میکنه که حجم فایل از 800kb بیشتر نباشه
اگه خواستی پسوند فایل رو هم بدونی چیه در FileExtention هم پسوند فایل قرار گرفته.

string FileName = MediaFile.PostedFile.FileName.Substring(MediaFile. PostedFile.FileName.LastIndexOf("\\") + 1);
string FileExtention = myFile.FileName.Substring(myFile.FileName.LastInde xOf("."));
string nFileLen = myFile.ContentLength;
if (nFileLen > 800)
return "حجم فایل از 800 کیلوبایت نمیتواند بیشتر باشد";

davoodipoor
شنبه 10 دی 1390, 14:42 عصر
این کد چک میکنه که حجم فایل از 800kb بیشتر نباشه
اگه خواستی پسوند فایل رو هم بدونی چیه در FileExtention هم پسوند فایل قرار گرفته.

string FileName = MediaFile.PostedFile.FileName.Substring(MediaFile. PostedFile.FileName.LastIndexOf("\\") + 1);
string FileExtention = myFile.FileName.Substring(myFile.FileName.LastInde xOf("."));
string nFileLen = myFile.ContentLength;
if (nFileLen > 800)
return "حجم فایل از 800 کیلوبایت نمیتواند بیشتر باشد";


ممنون از پاسختون ولی حجم فایل رو من خودم می تونم بدست بیارم. من با سایز عکسم مشکل دارم که می خوام حتماً به اندازه برگه A4 باشه.
ضمناً برای بدست آوردن نوع فایل کد راحت تری وجود داره:

string filePath = FileUpload_FilePath.PostedFile.FileName;
this.Extension = System.IO.Path.GetExtension(filePath);
if (this.Extension.ToLower() == ".jpg" || this.Extension.ToLower() == "gif")
با این تکه کد دیگه نیازی به استفاده از lastIndexOf نیست.
لطفا در مورد بدست آوردن سایز عکس مرا راهنمایی کنید.

SA_SA_1980
چهارشنبه 18 مرداد 1391, 11:20 صبح
سلام
من برا کار شما یه راه حل دارم که فکر کنم بدردتون بخوره که توی سایت اجتماعی خودم استفاده کردم به آدرس www.expxy.com
string virtualFolder = "~/product/" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
string file_name;
string image_url;

DirectoryInfo thisFolder = new DirectoryInfo(Server.MapPath(virtualFolder));
thisFolder.Create();


string physicalFolder = Server.MapPath(virtualFolder);

FileUpload1.SaveAs(physicalFolder + "/" + FileUpload1.FileName);

file_name = FileUpload1.FileName.ToString();


image_url = virtualFolder + "/" + FileUpload1.FileName;

System.Drawing.Image image1;
image1 = System.Drawing.Image.FromFile(physicalFolder + "/" + FileUpload1.FileName);
Bitmap img = new Bitmap(image1);
if (image1.Width > 800)
{

}

پیروز باشید ساسان قهرمانی emai:sa_project@yahho.com