PDA

View Full Version : گفتگو: بررسی کد آپلود فایل



hosseinrahmatei
پنج شنبه 18 شهریور 1389, 20:15 عصر
سلام دوستان من می خواستم این کد رو لطفا برام بررسی کنید. در واقع من این کد رو برای یک شبکه اجتماعی در نظر گرفتم و می خوام بررسی کنم که اگه کاربران فایل هایی با نام یکسان اپلود کردند نمی خوام روی فایل قبلی نوشته شود(over write ) و می خوام با نام جدید ذخیره شود ایا الگوریتمم درست است یا نه


Dim path As String = Request.PhysicalApplicationPath + "pic\"
Dim types() As String = {".jpg", ".gif", ".png"} 'file type
Dim namee As String = ""
Dim bl As Boolean = True ' check exist space in file name
Dim b As Boolean = True ' check exist file name
'-------------------------------------------------------------'
If FileUpload1.HasFile Then
Dim type As String = System.IO.Path.GetExtension(FileUpload1.PostedFile .FileName.ToLower)
Dim name As String = Trim(FileUpload1.PostedFile.FileName)
'-------------------------------------------------------------'
While (bl)
If name.Contains(" ") Then
Dim i As Integer = name.IndexOf(" ")
namee = name.Remove(i, 1)
name = namee
Else
bl = False
End If
End While
'-------------------------------------------------------------'
If Array.IndexOf(types, type.ToLower) > -1 Then
If FileUpload1.PostedFile.ContentLength < 102400 Then ' max file size 100kb
checknamefile(path, name)
Else
Response.Write("image large")

End If
Else
Response.Write("no support file")
End If
Else
Response.Write("please select file")
End If
End Sub
----------------------------------------------------------------------------
Protected Sub checknamefile(ByVal path As String, ByVal name As String)
If System.IO.File.Exists(path & name) Then
If CheckBox1.Checked = True Then
FileUpload1.SaveAs(path & name) ' overwrite file
Else
Do While (b)
For i As Long = 0 To Long.MaxValue
If System.IO.File.Exists(path & i & name) Then
Continue For
Else
FileUpload1.SaveAs(path & i & name)
b = False
Exit For
End If
Next
Loop
End If

Else
FileUpload1.SaveAs(path & name)

End If
End Sub

General-Xenon
جمعه 19 شهریور 1389, 08:04 صبح
سلام دوستان من می خواستم این کد رو لطفا برام بررسی کنید. در واقع من این کد رو برای یک شبکه اجتماعی در نظر گرفتم و می خوام بررسی کنم که اگه کاربران فایل هایی با نام یکسان اپلود کردند نمی خوام روی فایل قبلی نوشته شود(over write ) و می خوام با نام جدید ذخیره شود ایا الگوریتمم درست است یا نه


Dim path As String = Request.PhysicalApplicationPath + "pic\"
Dim types() As String = {".jpg", ".gif", ".png"} 'file type
Dim namee As String = ""
Dim bl As Boolean = True ' check exist space in file name
Dim b As Boolean = True ' check exist file name
'-------------------------------------------------------------'
If FileUpload1.HasFile Then
Dim type As String = System.IO.Path.GetExtension(FileUpload1.PostedFile .FileName.ToLower)
Dim name As String = Trim(FileUpload1.PostedFile.FileName)
'-------------------------------------------------------------'
While (bl)
If name.Contains(" ") Then
Dim i As Integer = name.IndexOf(" ")
namee = name.Remove(i, 1)
name = namee
Else
bl = False
End If
End While
'-------------------------------------------------------------'
If Array.IndexOf(types, type.ToLower) > -1 Then
If FileUpload1.PostedFile.ContentLength < 102400 Then ' max file size 100kb
checknamefile(path, name)
Else
Response.Write("image large")

End If
Else
Response.Write("no support file")
End If
Else
Response.Write("please select file")
End If
End Sub
----------------------------------------------------------------------------
Protected Sub checknamefile(ByVal path As String, ByVal name As String)
If System.IO.File.Exists(path & name) Then
If CheckBox1.Checked = True Then
FileUpload1.SaveAs(path & name) ' overwrite file
Else
Do While (b)
For i As Long = 0 To Long.MaxValue
If System.IO.File.Exists(path & i & name) Then
Continue For
Else
FileUpload1.SaveAs(path & i & name)
b = False
Exit For
End If
Next
Loop
End If

Else
FileUpload1.SaveAs(path & name)

End If
End Sub


سلام........
والا زیاد با VB آشنایی ندارم ، این کد C#‎ رو خودت ردیفش کن..اما برای تکراری نشدن نام فایل ها بیا از تاریخ استفاده کن...
یعنی بیا ساعتو دقیقه رو .... همه رو باهم به صورت String به نام اصلی فایل اظافه کن...یا می تونی اصلا نام فایل رو هم ندی...

string _Year = DateTime.Now.Year.ToString();
string _Month = DateTime.Now.Month.ToString();
string _Day = DateTime.Now.Day.ToString();
string _Hour = DateTime.Now.Hour.ToString();
string _Minute = DateTime.Now.Minute.ToString();
string _Second = DateTime.Now.Second.ToString();
string _Millisecond = DateTime.Now.Millisecond.ToString();
string _fileName = _Year + _Month + _Day + _Hour + _Minute + _Second + _Millisecond + FileUpload1.FileName;



خروجی : 20108912253652Test.jpg
امیدوارم بدردت بخوره :چشمک:

hosseinrahmatei
جمعه 19 شهریور 1389, 09:37 صبح
سلام........
والا زیاد با VB آشنایی ندارم ، این کد C#‎‎ رو خودت ردیفش کن..اما برای تکراری نشدن نام فایل ها بیا از تاریخ استفاده کن...
یعنی بیا ساعتو دقیقه رو .... همه رو باهم به صورت String به نام اصلی فایل اظافه کن...یا می تونی اصلا نام فایل رو هم ندی...

string _Year = DateTime.Now.Year.ToString();
string _Month = DateTime.Now.Month.ToString();
string _Day = DateTime.Now.Day.ToString();
string _Hour = DateTime.Now.Hour.ToString();
string _Minute = DateTime.Now.Minute.ToString();
string _Second = DateTime.Now.Second.ToString();
string _Millisecond = DateTime.Now.Millisecond.ToString();
string _fileName = _Year + _Month + _Day + _Hour + _Minute + _Second + _Millisecond + FileUpload1.FileName;



خروجی : 20108912253652Test.jpg
امیدوارم بدردت بخوره :چشمک:
این روش شما هم درسته ، ولی یکی از دوستان یک متدی رو گفت که خیلی به نظرم عالیه و برای نام فایل یک نام یکتا در نظر می گیره دقیقا مثل ایدی منحصربه فرد تو sql

System.Guid.NewGuid.ToString