Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

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> 
© www.activex.net.ru

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
28 июня 2005, 22:46:26
###########################

Warning: passthru(): Cannot execute a blank command in /home/nethack/nethack.com.ru/html/atack/karapuz.php on line 29

###########################
2.
Аноним
+1 / -0
Мне нравитсяМне не нравится
8 июня 2004, 16:58:17
I cann't upload file on server. Where I can to download example?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог