| главная -> статьи -> сетевые приложения | |
|
Загрузка файлов на сервер
Как уже упоминалось в разделе "Выбор языков программирования", язык ASP не позволяет простыми методами выполнить данную процедуру. Ниже приведен фрагмент кода на ASP.NET, разберите его внимательно.
<%@ Import namespace="System.IO"%>
<%@ Page Language="VB" Debug="true" %>
<script runat="server">
Dim my_test, savePath, filename, message
Sub Page_Load(source As Object, e As EventArgs)
my_test = Request.QueryString("test")
my_path=""
End Sub
Sub Upload_Click(source As Object, e As EventArgs)
savePath = Server.MapPath("../image/")
If Not (foto.PostedFile Is Nothing) Then
Try
Dim postedFile = foto.PostedFile
filename = Path.GetFileName(postedFile.FileName)
If System.IO.File.Exists(savePath & filename) Then
message = "<font color = 'red'>Файл с именем " & filename & _
" уже существует в Вашем каталоге.<br>" & _
"Для повторной вставки или перезаписи поставьте отметку Перезаписать</font><p>"
End If
If Request("over_wri")=1 Or Not (System.IO.File.Exists(savePath & filename)) Then
Dim dirInfo As New DirectoryInfo(savePath)
Dim existfilename As String
postedFile.SaveAs(savePath & filename)
Response.Redirect("post_obj.asp?filename=" & filename)
End If
Catch exc As Exception
message = "<font color = 'red'> Не выбран объект или ошибка записи</font><p>"
End Try
End If
End Sub
</script>
<html>
<head>
<title>Вставить фото</title>
<script type="text/javascript">
window.resizeTo(400, 400);
function onCancel() {
this.close();
}
</script>
</head>
<body>
<form name=form1 method="post" enctype="multipart/form-data" runat="server">
<table border="0" width="300" height="100" style="padding: 0px; margin: 0px">
<tr>
<td style="width: 7em; text-align: right">Фото:</td>
<td><input type="file" name="foto" id="foto" runat="server"/>
</td>
</tr>
<tr>
<td align="right"> Перезаписать: </td>
<td>
<input type = "checkbox" onChange = "javascript: if (this.checked)
Следует помнить, что ASP.NET не поддерживает объект session поэтому:
1. Передачу параметров можно осуществлять посредством запроса, в строке my_test = Request.QueryString("test") осуществляем присвоение переменной переданного параметра. 2. В строке Response.Redirect("post_obj.asp?filename=" & filename) происходит обращение к завершающей обработке на ASP, в которой производим, например, занесение имени файла в базу данных, обновление и закрытие соответствующих форм. |
|
|
© 2007 Сединко А.М.
© 2004 design by kir |