目前有很多無組件上傳類,我大概看了一下,大多寫的相當復雜,有的居然還只能傳文本,最關鍵的是沒有10行代碼以下的:),我花了一個晚上時間研究了一下ADODB.Stream,並且用了6行代碼實現了無組件上傳:
upload.ASP 文件代碼
<%
strFileName = Request.QueryString("fn")
Set obJStream = Server.CreateObject("ADODB.Stream")
obJStream.Type = 1 'adTypeBinary 二進制方式
obJStream.Open
obJStream.LoadFromFile strFileName
obJStream.SaveToFile Server.MapPath("zslogo.gif"),2
%>
使用方法
在浏覽器裡面輸入:
http://xxx/upload.ASP?fn=c:\上傳文件\123.gif
其中xxx為你的網站域名地址,比如:www.jzxue.com
執行完後你會看到你的目錄下面多了一個zslogo.gif,就是你剛才上傳的文件拉!
根據ASP無組件上傳原理,我們把上面的代碼擴展為以下代碼:
upload.ASP 文件代碼
<%
Function GetFileName(ByVal fn)
If fn<>"" Then GetFileName=mid(fn,InStrRev(fn,"\")+1) Else GetFileName=""
Endfunction
strFileName = Request.Form("file1")
Set obJStream = Server.CreateObject("ADODB.Stream")
obJStream.Type = 1 ' adTypeBinary
obJStream.Open
obJStream.LoadFromFile strFileName
obJStream.SaveToFile Server.MapPath(GetFileName(strFileName)),2
obJStream.Close
%>
upload.htm 文件代碼
<form name="upform" action="upload.ASP" method="post" enctype="multipart/form-data">
<input type="file" name="file1" value="" />
<input type="submit" name="submit" value="上傳文件" />
</form>