Задача: необходимо загружать файлы в папку upload на сервере с уникальными именами. Т.е. при загрузке двух файлов с одинаковыми именами они должны сохраняться под уникальными именами и не перезаписывать друг друга. В ASP.NET эта задача легко решается с помощью класса Guid. Т.о. файл будет сохранен например под именем fe008e1a-f07c-4263-8dc4-67f042a8cbdb_valley.jpg.
Папка upload должна иметь NTFS права на чтение/запись/изменение для интернет-пользователя.
Файл upload_cs.aspx (написан на C#):
< %@ Page Language="C#" %> < script language="C#" runat="server"> void Upload_Click(Object sender, EventArgs e) { string strFileName, strRootUpload, strUniqueName; int index; strRootUpload = Server.MapPath("./upload"); lblMessage.Text = ""; if (fileInp.PostedFile != null) { try { strFileName = fileInp.PostedFile.FileName; if (strFileName != "") { strFileName = strFileName.Replace("/", ""); index = strFileName.LastIndexOf(""); strFileName = strFileName.Substring(index + 1); strUniqueName = System.Guid.NewGuid().ToString() + "_" + strFileName; fileInp.PostedFile.SaveAs(strRootUpload + "" + strUniqueName); lblMessage.Text = "Файл успешно загружен с именем " + strUniqueName + "< p>"; } } catch (Exception ex) { lblMessage.Text = ex.Message + "< p>"; } } } < /script> < HTML> < HEAD> < Title>Unique Upload< /Title> < /HEAD> < BODY> < form enctype="multipart/form-data" runat="server"> < asp:Label id="lblMessage" runat="server" /> Файл:< br> < input id="fileInp" type="file" runat="server">< br> < asp:button text="Загрузить" OnClick="Upload_Click" runat="server" /> < /form> < /BODY> < /HTML> Файл upload_vb.aspx (написан на VB.NET): < %@ Page Language="VB" %> < script language="VB" runat="server"> Sub Upload_Click(ByVal sender As Object, ByVal e As EventArgs) Dim strFileName, strRootUpload , strUniqueName As String Dim index As Integer strRootUpload = Server.MapPath("./upload") lblMessage.Text = "" If Not (fileInp.PostedFile Is Nothing) Then Try strFileName = fileInp.PostedFile.FileName If strFileName <> "" Then strFileName = strFileName.Replace("/", "") index = strFileName.LastIndexOf("") strFileName = strFileName.Substring(index + 1) strUniqueName = System.Guid.NewGuid().ToString() + "_" + strFileName fileInp.PostedFile.SaveAs(strRootUpload & "" & strUniqueName) lblMessage.Text = "Файл успешно загружен с именем " & strUniqueName & "< p>" End if Catch ex As Exception lblMessage.Text = ex.Message & "< p>" End Try End If End Sub < /script> < HTML> < HEAD> < Title>Unique Upload< /Title> < /HEAD> < BODY> < form enctype="multipart/form-data" runat="server"> < asp:Label id="lblMessage" runat="server" /> Файл:< br> < input id="fileInp" type="file" runat="server">< br> < asp:button text="Загрузить" OnClick="Upload_Click" runat="server" /> < /form> < /BODY> < /HTML>
Постоянные ссылки
При копировании ссылка на TeaM RSN обязательна!
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.