|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了利用ASP完成文件上载到WEB服务器
ASPupload2.0版,相干源文件以下(uploadTest.htm):
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>文件上载客户端</title>
</head>
<body>
<formmethod="POST"action="uploadTest1.asp"enctype="multipart/form-data"
name="UPloadForm">
<p><inputtype="file"Name="File1"> </p>
<p><inputtype="submit"value="Submit"name="Upload"></p>
</form>
</body>
</html>
个中客户端文件要注重两点:
*文件上载提交表单(Form)的enctype必需指定为“multipart/form-data”
*语句<inputtype="file"Name="File1">暗示上载文件域,用户能够在该域中输出或选定文件。
服务器端源文件以下(uploadTest1.asp):
<%response.buffer=true%>
<html>
<%SetUpload=Server.createobject("Persits.Upload.1")创立文件上载组件
Count=Upload.Save("e:aspupload")将客户端文件保留到WEB服务器真个当地硬盘上%>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>UploadTest</title>
<metaname="GENERATOR"content="MicrosoftFrontPage3.0">
</head>
<body>
<p>上载了<%=Count%>个文件</p>
<p>Filehasbeenuploaded.</p>
</body>
</html>
个中,剧本SetUpload=Server.createobject("Persits.Upload.1")创立了文件上载组件,该组件经由过程挪用Save办法将扫瞄器真个文件内容保留到指定路径。
将文件存在数据库中
将文件保留在数据库中次要用了ASPUpLoad组件中文件工具的ToDatabase办法。源文件以下:
客户端源文件(uploadToDB.htm):
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>文件上载客户端</title>
</head>
<body>
<formmethod="POST"action="UploadToDB.asp"enctype="multipart/form-data"
name="FormUpload">
<p><inputtype="file"name="FileUpload"></p>
<p><inputtype="submit"value="上载"name="B1"></p>
</form>
<p><ahref="readFile.asp">读取数据库中文件</a></p>
</body>
</html>
服务器端源文件(uploadToDB.asp):
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>文件上载到数据库</title>
</head>
<body>
<%SetUpload=Server.createobject("Persits.Upload.1")
Count=Upload.Save("e:aspupload")
onerrorresumenext
setFileObj=Upload.Files("FileUpload")
SQL="insertintoupLoadFile(Title,FileName,Content)values("&FileObj.Path&","&FileObj.Path&",?)"
response.writeSQL
FileObj.ToDatabase"DSN=FileUpload;UID=sa;",SQL
ifErr0then
Response.write"ErrorSavingthefile:"&Err.Description
else
FileObj.delete
response.write"Success!"
endif
%>
</body>
</html>
从数据库中读取文件内容并发送给客户端扫瞄器
从数据库中读取内容在发送给扫瞄器之前,起首必需让扫瞄器晓得内容的数据范例,这经由过程向客户端发送ContentType形貌完成。为复杂起见,这里假定发送的内容是Word文档,而且显现最新拔出的纪录。源文件以下:
客户端源文件为uploadToDB.htm(同上一部分的客户端文件)。
服务器端源文件(readFile.asp):
<%Response.Expires=0
response.buffer=true%>
<%response.clear
Response.ContentType="application/msword"
setconn=server.createobject("adodb.connection")
conn.open"DSN=FileUpload;UID=sa;"
setrs1=conn.execute("selectmaxid=max(id)fromuploadFile")
SQL="select*fromuploadFilewhereid="&rs1("maxid")
setrs=conn.execute(SQL)
Response.BinaryWriters("Content")
rs.close
rs1.close
conn.close
Response.End
%>
个中,WebServer向客户端发送Content-Type="application/msword",使客户端以为这是Word文档,然后服务器从数据库中读取文件内容(为复杂起见,假定是数据库中最初一笔记录),然后以二进制流的体例向客户端发送(挪用ASP内置工具Response的BinaryWrite办法)。当客户端吸收到这些内容后便主动启动WordOLE服务,使Word控件嵌在扫瞄器IE中将收到的内容格局化显现。由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况; |
|