Статья: Upload файлов с уникальными именами в ASP.NET

Upload файлов с уникальными именами в ASP.NET

Христофоров Юрий

Задача: необходимо загружать файлы в папку 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>

еще рефераты
Еще работы по информатике