Учебная работа. Статья: Upload файлов с уникальными именами в ASP.NET
Христофоров Юрий
задачка: нужно загружать файлы в папку upload на сервере с неповторимыми именами. Т.е. при загрузке 2-ух файлов с схожими именами они должны сохраняться под неповторимыми именами и не перезаписывать друг друга. В ASP.NET эта задачка просто решается при помощи класса Guid. Т.о. файл будет сохранен к примеру под именованием fe008e1a-f07c-4263-8dc4-67f042a8cbdb_valley.jpg.
веб-пользователя.
Файл 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>
]]>