главная -> статьи -> сетевые приложения
 
Загрузка файлов на сервер
  Как уже упоминалось в разделе "Выбор языков программирования", язык 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)

{over_wri.value = 1} else {over_wri.value = 0}"> <input type = "hidden" name="over_wri" id="over_wri" value="0">       <button type="button" name="ok" OnServerClick="Upload_Click" runat="server" >OK</button>  <button type="button" name="cancel" onClick="return onCancel();">Cancel </button> </td> </tr> </table> <hr> <% =message%> </form> </body> </html>
Следует помнить, что ASP.NET не поддерживает объект session поэтому:
  1. Передачу параметров можно осуществлять посредством запроса, в строке
 my_test = Request.QueryString("test") осуществляем присвоение переменной переданного параметра.
  2. В строке Response.Redirect("post_obj.asp?filename=" & filename) происходит обращение к завершающей обработке на ASP, в которой производим, например, занесение имени файла в базу данных, обновление и закрытие соответствующих форм.

далее

   
  © 2007   Сединко А.М.
  © 2004 design by   kir
Hosted by uCoz