1 ضمیمه
دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
دانلود کنید. کاملترین برنامه آپلود عکس که شامل :
- بررسی پسوند عکس
- بررسی حجم عکس
- ایجاد فولدر تاریخ همان روز
- ایجاد نام تصادفی برای عکس
- ایجاد thumbnails برای عکس
- و ذخیره عکس روی هاست و خروجی string برای ذخیره آدرس عکس در دیتابیس
دوستان اگه قسمتی باید اضافه بشه توضیح بدهند
این برنامه با VS 2008 نوشته شده
ضمیمه 67397
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
سلام
جناب یه 2 تا پیشنهاد دارم:
1) برای مقایسه حجم همه فایل ها همیشه بهتر هست که از طریق FileBytes چک بکنید. به خاطر اینکه اساسا تمام فایل ها آرایه ای از بایت ها هستند که به صورت بلاک بلاک برروی حافظه ذخیره شده اند. به همین خاطر پیشنهاد می کنم برای مقایسه حجم فایل ارسال شده از این دستور استفاده کنید:
//Check file size
if (FileUpload1.FileBytes.Length / 1024 >= 150)
{
lblMessage.Text = "اندازه حجم فایل باید کمتر از 150 کیلوبایت باشد";
return;
}}
2- در متد IsValidFileType شما آمده اید Extension فایل رو بررسی کردید. خوب فرض کنید من یک فایل Exe دارم اما میام با Extension مورد نظر شما یعنی مثلا jpeg ذخیره میکنم. بر اساس دستورات نوشته شده شما برنامه فایل من رو jpeg می شناسه و با موفقیت هم آپلود می کنه و شما هم فکر می کنید که برنامه درست کار می کنه. برای همین پینشهاد می کنم که دستورات رو تغییر بدید. در وب تمام فایل ها یک MIME Type دارند. اگر در گوگل جستجو کنید یک جدول برای شما نشون داده میشه از تمام MIME Type های مختلف که در وب به صورت استاندارد درومده. نوع هر فایل در Header اون فایل ذخیره میشه نه در FileName اون. شما FileName رو دریافت کردید و در آرایه ValideExtension هاتون یک شرط برای مقایسه گذاشتید. برای همین ابتدا شما هدر فایل رو بخونید و بعد مقایسه انجام بدید. دستورات رو به این صورت تغییر بدید بهتر هستش:
//Check File Extensions
string FileExtensions = FileUpload1.PostedFile.ContentType;
string[] ValidExtensions = { "image/pjpeg", "image/jpeg", "image/jpg", "image/gif" };
if (Array.IndexOf(ValidExtensions, FileExtensions) < 0)
{
lblMessage.Text = "پسوند های مجاز برای آپلود فایل jpeg و gif می باشند.";
return;
}
من برنامه شما رو اجرا نکردم اما شما در لیست امکانات اشاره کردید که فایل پس از آپلود یک خروجی در Label به کاربر نشون می ده تا بتونه اون آدرس رو کپی کنه و در جاهای مختلف ذخیره یا نمایش بده. در کد شما من ندیدم که متغیر message رو با SavePath یا SavePath2 مقدار دهی کرده باشید. اگر میشه این یه قسمت رو به من بگید.
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
نقل قول:
من برنامه شما رو اجرا نکردم اما شما در لیست امکانات اشاره کردید که فایل پس از آپلود یک خروجی در Label به کاربر نشون می ده تا بتونه اون آدرس رو کپی کنه و در جاهای مختلف ذخیره یا نمایش بده. در کد شما من ندیدم که متغیر message رو با SavePath یا SavePath2 مقدار دهی کرده باشید. اگر میشه این یه قسمت رو به من بگید.
تو خط ۱۵۸ به صورت کامنت اوردن :
//insert into image(large,thumb)values(originalImagePath,thumbIm agePath);
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
سلام کاره قشنگیه
اما بهتر نبود برای چک کردن پسوند فایل ها از این گزینه استفاده می کردی؟
public string[] UploadFile(FileUpload FuImage,string ServerVariables,int maximumSize,string Extention)
{
string AdditionalPath = @"Admin\members\ImagesEmployments\";
string[] Result = new string[4];
long size = FuImage.FileContent.Length;
size /= 1024;
string ExtentionFile = Path.GetExtension(FuImage.FileName);
string FileName = Path.GetFileNameWithoutExtension(FuImage.FileName) ;
string UploadPath = ServerVariables +AdditionalPath + FileName + ExtentionFile;
if (maximumSize > size)
{
int r=string.Compare(Extention,ExtentionFile,true);
if (r==0)
{
sbyte i = 0;
while (CheckExists(UploadPath) == true)
{
i++;
FileName += "_" + i.ToString();
UploadPath = ServerVariables + AdditionalPath + FileName + ExtentionFile;
}
FuImage.SaveAs(UploadPath);
Result[0] = insert.StatuseInsert.success.ToString();
Result[1] = "~/" + AdditionalPath + FileName + ExtentionFile; ;
}//////if Compare
else
{
Result[0] = insert.StatuseInsert.Failed.ToString();
Result[1] = "فایل پشتیبانی نمی شود" + Environment.NewLine + "فقط عکس ها با پسونده " + Extention + " پشتیبانی می شود.";
}
}///if Size
else
{
Result[0] = insert.StatuseInsert.Failed.ToString();
Result[1] = "سایز فایل بیشتر از حد مجاز است!!" + Environment.NewLine + "حد اکثر سایز مجاز:" + maximumSize.ToString();
}
return Result;
}
protected bool CheckExists(string FileAddress)
{
FileInfo f = new FileInfo(FileAddress);
if (f.Exists)
{
return true;
}
return false;
}
این کلاسیه که خودم نوشتمش و دارم باهاش کار می کنم
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
با تشکر از obalitjon
قابلیت ایجاد thumb برای پسوندهای bmp ,gif ,png, نیز اضافه شد ایرادی که داره اینه که برای عکسهای gif نمیشه thumb ایجاد کرد
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
مثل اینکه فایلهای بیشتر از 500 کیلوبایت رو حتی در صورت عوض مقدار شرط، آپلود نمیکنه و خطای HTTP Error 400 - Bad Request v رو میده.
من با دیباگ کنترل کردم، وقتی فایلی با حجم بیشتر از 500 کیلوبایت رو میدی کلا برنامه جواب نمیده حتی اجرا به خط شرط هم نمیرسه که چک بکنه این بیشتر یا کمتر اون مقداری هست که دادیم یا نه.
در واقع باید خطایی که خودمون تعریف کردیم رو بده (اندازه حجم فایل باید کمتر از 150 کیلوبایت باشد) ولی کار نمیکنه.
حتی من شرط بررسی حجم فایل رو هم برداشتم ولی باز خطا داد. نمیدونم مشکل از کجاست.
من میخوام فایلهای تا حجم 2 مگابایت رو آپلود بکنه یا حداقل یک مگابایت.
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
نقل قول:
نوشته شده توسط
farzadsmc
مثل اینکه فایلهای بیشتر از 500 کیلوبایت رو حتی در صورت عوض مقدار شرط، آپلود نمیکنه و خطای HTTP Error 400 - Bad Request v رو میده.
من با دیباگ کنترل کردم، وقتی فایلی با حجم بیشتر از 500 کیلوبایت رو میدی کلا برنامه جواب نمیده حتی اجرا به خط شرط هم نمیرسه که چک بکنه این بیشتر یا کمتر اون مقداری هست که دادیم یا نه.
در واقع باید خطایی که خودمون تعریف کردیم رو بده (اندازه حجم فایل باید کمتر از 150 کیلوبایت باشد) ولی کار نمیکنه.
حتی من شرط بررسی حجم فایل رو هم برداشتم ولی باز خطا داد. نمیدونم مشکل از کجاست.
من میخوام فایلهای تا حجم 2 مگابایت رو آپلود بکنه یا حداقل یک مگابایت.
<system.web>
<httpRuntime maxRequestLength="20951" executionTimeout="1000"/>
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
نقل قول:
نوشته شده توسط
fakhravari
<system.web>
<httpRuntime maxRequestLength="20951" executionTimeout="1000"/>
من این خط رو تو تگ system.web اضافه کردم ولی کار نکرد بازم.
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
ببینید با این مشکل حل میشه . چون من این Error رو ندارم
<httpRuntime executionTimeout="90" maxRequestLength="20000" useFullyQualifiedRedirectUrl="false" requestLengthDiskThreshold="8192"/>
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
در ضمن این برنامه رو با ویژوال استودیو 2008 نوشتم اگه شما با 2010 باز میکنی نباید برنامه رو Convert کنی
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
متاسفانه بازم کار نکرد.
نه کانورت نکردم
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
شما یه پروژه جدید باز کن کدها رو توی اون کپی کن
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
حتی اگه mime type هم بگیرید باز هم فایلهای مورد بحث اپلود میشن من با این روشی گه شما فرمودین کار کردم ولی باز هم اپلود کرد بعنوان مثال شما میتوانید یک فایل با این اسم که یک شل است را به راحتی اپلود کنید ::
123.aspx;.jpg
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
راستی بعد از ایجاد thumbnails از عکس حتما دستور image.Dispose(); اضافه کنید
چون عکس باز میمونه و علاوه بر اینکه حافظه سرور را بیجهت اشغال میکنه ،عکس اپلود شده را هم نمیشه پاک کرد
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
من الان تو مسیر ccdssd.ir / site1 / admin / gallery.aspx.cs هستم و میخوام فایلی رو به وسیله ی فایل آپلود در ccdssd.ir/httpdocs/img bodvi ذخیره کنم میشه راهنمایی کنین چه جوری آدرس بدم؟
ممنون
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
(@"~/....")
به جای نقطه چین ادرس اون قسمت رو بزارید
نقل قول: دانلود کنید. کاملترین برنامه آپلود عکس که شامل ...
سلام بر دوستان و اساتید
این کد خیلی به درد من خورد حالا من مشکلم اینه که هم تصویر با کیفیت اصلی ذخیره میکنه و هم تصویر با کیفیت پایین من فقط به تصویر با کیفیت پایین احتیاج دارم چطور باید کد تغییر بدم تا تصویر با کیفیت اصلی ذخیره نشه ؟