一聚教程网:一个值得你收藏的教程网站

热门教程

一段简单 ASP文件上传实例

时间:2022-07-02 23:01:06 编辑:袖梨 来源:一聚教程网

本教程将告诉你需要建立一个简单的应用程序,使用户能够上传PDF文件到服务器的步骤,删除现有的文件和查看他们的浏览器中的文件。这个例子使用我们自己的dgFileUpload组成部分,你可以下载一个15天的试用版在这里,您可以按照教程和测试自己的服务器完成的应用程序。所有的源代码,随着小Access 2000数据库教程在本教程中使用,可以下载在这里作为一个ZIP档案。

在下载并取消荏苒存档,您的网站根目录下创建(如的'C: inetpub wwwroot的 dgUpload'),并把两个ASP页(新目录'upload.asp教程'和'display.asp')和在那里的数据库。您还必须创建一个名为'PDF的'和设置此目录的安全保障,使为'完全控制Internet来宾帐户'用户。要做到这一点,右键点击'PDF文件的文件夹,并选择'属性',然后'安全'标签。如果'Internet来宾帐户'不是已经列出,请单击“添加'按钮,然后选择计算机名从'查找'下拉菜单。向下滚动,直至看到'为IUSR_ [计算机名]',选择此用户和点击'添加'按钮。点击'确定'重新回到'属性'窗口中,选择新添加的用户,给这个项目'完全控制'。您现在可以测试通过输入以下网址申请入浏览器:

http://localhost/dgUpload/upload.asp

在这个页面你会看到两个输入栏位,第一,您可以选择您想要的PDF文件上传和其他让你输入该文件的显示名称。此名称将显示为一个链接,查看'display.asp文件'后上传。浏览到一个合适的PDF文件,输入名称,然后点击'上传'按钮。您的文件将被上传到,你会被重定向到显示网页,其中将有1到文件的链接。有关详情(路径,显示名称和日期上传每个文件)存储在数据库中。让我们来看看代码执行此。

我们在声明变量,我们首先要做的是打开一个连接到数据库。

Set cnnDB = Server.CreateObject("ADODB.Connection")
strConn = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
               "DBQ=" & Server.MapPath("newsletters.mdb")
cnnDB.Open strConn

Set oPost = Server.CreateObject("dgFileUpload.dgUpload")

Because we want to restrict the file size of the uploaded PDFs to something reasonable we will set this to 10 Megabytes.

oPost.MaxFileSize = 10000000

Next we grab the data posted from the form by calling the 'GetPostData' method.

oPost.GetPostData()


下面的代码抓起文件名和显示名称从形式收集,建立并执行SQL查询来存储在数据库中的文件详细信息,然后保存该文件到服务器上指定的目录。查看'源upload.asp'来看看这个代码与应用程序的其余部分集成。


 get the filename and display name
strDisplayName = oPost.Form("displayText")
strFileName = oPost.Files("pdfFile").FileName

' build the INSERT query
strQuery = "INSERT INTO NewsLetters (Filename, DisplayName) VALUES ('" & strFilename & "', '" & strDisplayName & "')"
cnnDB.Execute(strQuery)

' get the folder where we want to store the pdf
strFolder = Server.MapPath("pdfs") & ""

' save the uploaded pdf to the specified directory
intResult = oPost.Files("pdfFile").Save(strFolder & strFileName, 1)

' if the file upload is successful, redirect to
' the page that displays the files ("display.asp")
If intResult = 0 Then
    cnnDB.Close
    Set cnnDB = Nothing
    Response.Redirect("display.asp")
Else
    strFeedBack = "File upload failed. Error #" & intResult
End If


如果有问题或与上传保存过程中的'strFeedback'变量被分配一个合适的信息,然后显示给用户。这是处理使用客户端JavaScript一旦页面已被处理。再次,看提供的源代码是如何工作的更多细节。

正如前面提到的,上面的例子使用dgFileUpload但这一进程是任何类似的文件上传组件使用。本教程的其余部分是提取一个文件由迈克尔艾伦史密斯书面上传组件的文章,描述了上传文件使用其他两个组件的过程,软件和持续存在AspUpload工匠FileUp。

两者(FileUp和AspUpload)处理上传略有不同。让我们这些组件的代码来处理我们的每一个要求(上传仅低于指定大小的图像文件)。

的形式,在客户端上载一个文件,是相同的两个。

form name="form" action="upload.asp" enctype="MULTIPART/FORM-DATA" method="POST">


<%
intMaxFileSize = 8000
strUploadFolder = "c:uploadFolder"

Function isFileSizeOK(bytes)
' restrict file byte size
  byteMAX = intMaxFileSize
  If bytes > byteMAX Then
    isFileSizeOK = FALSE
  Else
    isFileSizeOK = TRUE
  End If
End Function

Function isValidFile(filename)
' define what file types you will permit to upload
  fileExtension = lcase(right(filename,4))
  select case fileExtension
  case ".gif",".jpg",".png","jpeg"
    isValidFile = TRUE
  case else
    isValidFile = FALSE
  end select
End Function
%>

Now the code for Software Artisans FileUp.

<%
Sub uploadSA
Set up = Server.CreateObject("SoftArtisans.FileUp")
up.Path = uploadFolder
If NOT up.IsEmpty Then
  filename = Mid(up.UserFilename, InstrRev(up.UserFilename, "") + 1)
' restrict file types to upload
  If isValidFile(filename) Then
' restrict file by size
  If isFileSizeOK(up.TotalBytes) Then
    up.Save
    strUploadStatus1 = "File [" & filename & "] Uploaded Successfully! " &     up.TotalBytes
  Else
    strUploadStatus1 = "ERROR: File Too Large: " & filename & " (" &     up.TotalBytes & " bytes)"
  End If
Else
  strUploadStatus1 = "ERROR: This File Type is restricted from uploading: "   & filename
  End If
End If
Set up = Nothing
End Sub
%>

坚持的AspUpload,您保存文件的第一个,然后执行检查。如果该文件没有通过检查,那么代码从服务器中删除它。该组件还具有“SaveToMemory”选项,它绕过写入到磁盘,直到指示。 ASPUpload具有内置图像处理和大小可以检测一个文件是一个带有。ImageType物业的形象,但这个例子中,我们将使用isValidFile功能。

<%
Sub uploadPersists
Set up = Server.CreateObject("Persits.Upload.1")
up.OverwriteFiles = TRUE
up.SetMaxSize intMaxFileSize
up.Save uploadFolder
For Each File in up.Files
  fileName = File.ExtractFileName
  If isValidFile(fileName) Then
    If isFileSizeOK(File.OriginalSize) Then
    strUploadStatus2 = "File [" & filename & "] Uploaded Successfully! "
  Else
    strUploadStatus2 = "ERROR: File Too Large: " & fileName & " (" &     File.OriginalSize & " bytes)"
    File.Delete
  End If
Else
  File.Delete
  strUploadStatus2 = "ERROR: This File Type is restricted from uploading: "   & fileName
End If
Next
End Sub
%>

热门栏目