PDA

View Full Version : سوال: file uploader



behnet
شنبه 07 فروردین 1389, 16:38 عصر
سلام.خسته نباشید

همونطور که میدونید با استفاده از کنترل فایل آپلودر میشه یه فایل رو به سرور فرستاد و اونجا ذخیره کرد اما مشکلی که اینجا پیش میاد اینه که اگه 2 تا فایل نامشون یکی باشه overwrite میشه.
اگه بخواهیم از این کار جلوگیری کنیم چه پیشنهاد میکنین؟

ممنون

مهدی کرامتی
شنبه 07 فروردین 1389, 18:24 عصر
به نام فایل ها یک شماره/عبارت تصادفی اضافه کنید.

webman
شنبه 07 فروردین 1389, 20:57 عصر
یک سری اینجا بزن
http://barnamenevis.org/forum/showthread.php?t=142954

کنترل EasyUpload

meysampaknahad
یک شنبه 08 فروردین 1389, 01:05 صبح
سلام
می تونید نام فایل رو قبل از ذخیره شدن تغییر بدید و برای اینکه هیچوقت تکراری نباشه می تونید از روش های مختلفی از جمله کد زیر استفاده کنید :


string filename = DateTime.Now.Ticks.ToString();

موفق باشید

naser2009
یک شنبه 08 فروردین 1389, 18:56 عصر
به نام فایل ها یک شماره/عبارت تصادفی اضافه کنید.
ببخشید ها آقای کرامتی ولی ممکنه بازم با اضافه کردن یک عدد تصادفی به اسمه فایل ، بازم اون فایل وجود داشته باشه پس بهترین حالت اینه

Random r = new Random();
int Randomnumber = 0;
if (File.Exists(Server.MapPath(@"images/logo/") + c))
{
do
{
Randomnumber = r.Next(1, 10000);
newstr = string.Concat(Randomnumber, c);
} while (File.Exists(Server.MapPath(@"images/logo/") + newstr));
UploadImage.PostedFile.SaveAs(Server.MapPath(@"images/logo/") + newstr);
ImgLogo.ImageUrl = @"images/logo/" + newstr;
}
else
{
UploadImage.PostedFile.SaveAs(Server.MapPath(@"images/logo/") + c);
ImgLogo.ImageUrl = @"images/logo/" + c;

mohammad.sakhidel
دوشنبه 09 فروردین 1389, 12:34 عصر
من همیشه از یه الگوریتم برای تولید رشته(نه عدد) تصادفی با طول دلخواه استفاده میکنم و پسوند فایلمو هم بهش اضافه میکنم. حالا شما احتمال تکراری بودنشو حساب کن ببین چقد کمه (1 بر 26 بتوان N که N طول رشته است) ، حتی اگه بازم با این احتمال کم رشته تکراری تولید بشه با یه شرط میتونی دوباره رشته دیگه ای تولید کنی. الگوریتم تولید رشته تصادفی و گرفتن پسوند فایل رو برات میذارم امیدوارم مفید باشه :


public string GetRandomString(int size, bool lowerCase)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
char ch;
for (int i = 0; i < size; i++)
{
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
builder.Append(ch);
}
if (lowerCase)
return builder.ToString().ToLower();
return builder.ToString();
}

public string GetPicExtension(string picName)
{
string ext = "";
try
{
ext = picName.Substring(picName.IndexOf('.'), picName.Length - picName.IndexOf('.'));
}
catch(Exception ex)
{
ext = ex.Message;
}
return ext;
}





-----------------------------------------------------------------
بازار مرزی ایرانیان :: تجربه یک خرید ارزان و با کیفیت (http://www.bazaremarzi.com)

kakhky
یک شنبه 15 فروردین 1389, 23:34 عصر
بهترین روش:

به نام فایل ها یک شماره/عبارت تصادفی اضافه کنید.
منم توی بیشتر پروژه ها از این روش استفاده میکنم
اگه مشکلی برای بعد پیش میاد به منم خبر بدید ممنون میشم...

Peyman.Gh
دوشنبه 16 فروردین 1389, 01:19 صبح
string p = Guid.NewGuid().ToString();
p += FileUpload2.FileName;
if (FileUpload2.HasFile)
{
FileUpload2.SaveAs(Request.PhysicalApplicationPath + p );
}

موفق باشید.