上傳範例
Upload.asp
<%@LANGUAGE=VBScript codepage=950 %>
<% Session.Codepage = 950 %>
<%
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<meta http-equiv="Content-Language" content="zh-tw">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title></title>
</head>
<font size=5 color=green>~上傳圖檔~</font> 檔案大小請勿大於 <%=1024*1024%> bytes
<form method="POST" enctype="multipart/form-data" action="uploadx.asp">
<table border="1" cellspacing="0" bordercolor="#C0C0C0" cellpadding="0">
<tr>
<td>姓名 :</td>
<td> <input type="text" name="PostName" size="50" value=""></td>
<td> 可有可無</td>
</tr>
<tr>
<td>主題 :</td>
<td> <input type="text" name="Title" size="50" value=""></td>
<td> 可有可無</td>
</tr>
<tr>
<td><font color="#FF0000">檔案 :</font></td>
<td> <input type="file" name="Fname" size="42"></td>
<td> 這當然一定要填的啦~</td>
</tr>
<tr>
<td>
描述 :</td>
<td> <textarea rows="10" name="Desc" cols="50"></textarea></td>
<td> 可有可無</td>
</tr>
<tr>
<td> </td>
<td align="center">
<input type="submit" value="送出" name="B1"> <input type="reset" value="重新設定" name="B2">
</td>
<td>
</td>
</tr>
</table>
</form>
=========================================================================
uploadx.asp
<%@LANGUAGE=VBScript codepage=950 %>
<% Session.Codepage = 950 %>
<%
FileSaveToPath="D:\Downloads\showpon\web\public\"
hrefurl="http://xxxx.xxxx.xxxx/showpon/public/"
MaxSize=1024*1024
FormSize=Request.TotalBytes
FormData=Request.BinaryRead(FormSize)
crlfx2= chrb(13) & chrb(10) & chrb(13) & chrb(10)
DivStr = LeftB(FormData,InStrB(FormData,str2bin(VbCrLf)) - 1)
DivLen = LenB(DivStr)
PostNameStar = InStrB(FormData,DivStr)
PostNameStar=instrb(PostNameStar,FormData,str2bin("name="))
PostNameStar=instrb(PostNameStar,FormData,crlfx2)+lenb(crlfx2)
PostNameEnd=instrb(PostNameStar,FormData,DivStr)-2
PostName=midb(FormData,PostNameStar,PostNameEnd-PostNameStar)
PostName=bin2str(PostName)
TitleStar=instrb(PostNameEnd,FormData,str2bin("name="))+6
TitleStar=instrb(TitleStar,FormData,crlfx2)+lenb(crlfx2)
TitleEnd=instrb(TitleStar,FormData,DivStr)-2
Title=midb(FormData,TitleStar,Titleend-TitleStar)
Title=bin2str(Title)
filenameStar=instrb(TitleEnd,FormData,str2bin("filename="))+10
filenameEnd=instrb(filenameStar,FormData,chrb(34))
filename=midb(FormData,filenameStar,filenameend-filenameStar)
filename=bin2str(filename)
If filename="" Then
response.write "你沒有輸入檔案名稱~!!!"
response.end
End If
filename=mid(filename,instrRev(filename,"\")+1)
extname=mid(filename,instrRev(filename,"."))
ContentTypeStr="Content-Type: "
FileContentStar=instrb(filenameEnd,FormData,str2bin(ContentTypeStr))+Len(ContentTypeStr)
FileContentEnd=instrb(FileContentStar,FormData,crlfx2)
FileContent=midb(FormData,FileContentStar,FileContentEnd-FileContentStar)
FileContent=bin2str(FileContent)
FileBinStar=instrb(FileContentEnd,FormData,crlfx2)+Lenb(crlfx2)
FileBinEnd=instrb(FileBinStar,FormData,DivStr)-2
FileSize=FileBinEnd-FileBinStar
If FileSize<=1 Then
response.write "檔案錯誤~!!!"
response.end
ElseIf FileSize>MaxSize Then
response.write "檔案太大,請勿超過 " & MaxSize & " Bytes"
response.end
End If
DescStar=instrb(FileBinEnd,FormData,str2bin("name="))+6
DescStar=instrb(DescStar,FormData,crlfx2)+lenb(crlfx2)
DescEnd=instrb(DescStar,FormData,DivStr)-2
Desctxt=midb(FormData,DescStar,DescEnd-DescStar)
Desctxt=bin2str(Desctxt)
set conn=nothing
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("upload.mdb")
'==========================================================================
'conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
'==========================================================================
strSource = "Provider=Microsoft.Jet.OLEDB.4.0"
strSource = strSource & ";Data Source=" & DBPath
conn.ConnectionString = strSource
conn.Open
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "select * from img;", conn,1,3
rs.addnew
If PostName="" Then PostName=Empty End If
If Title="" Then Title=Empty End If
If Desctxt="" Then Desctxt=Empty End If
rs("PostName")=PostName
rs("Title")=Title
rs("filename")=filename
rs("Desctxt")=Desctxt
DivStrTxt=bin2str(DivStr)
DivStrTxt=Replace(DivStrTxt,"-","")
rs("DivStr")=DivStrTxt
rs("update")=now()
rs.update
id=rs("id")
rs.close
set rs=nothing
conn.close
set conn=nothing
SaveFileName=id & "_" & DivStrTxt & extname
FileSaveToPath=FileSaveToPath & SaveFileName
temp=Save2File(FileSaveToPath,FormData,FileBinStar,FileSize)
hrefurl=hrefurl & SaveFileName
Desctxt=Server.HTMLEncode(Desctxt)
Desctxt=Replace(Desctxt,vbCrLf , "" & vbCrLf)
%>
<table border="1" cellspacing="1">
<tr>
<td>你的姓名 : </td><td> <%=PostName%> </td>
</tr>
<tr>
<td>標題 : </td><td> <%=Title%> </td>
</tr>
<tr>
<td>
圖檔位置 : </td><td> <a target=_blank href="<%=hrefurl%&
gt;"><%=hrefurl%></a> </td>
</tr>
<tr>
<td>原始檔名 : </td><td> <%=filename%> </td>
</tr>
<tr>
<td>檔案大小 : </td>
<td> <%=FileSize%> bytes</td>
</tr>
<tr>
<td>圖檔類型 : </td><td> <%=FileContent%> </td>
</tr>
<tr>
<td>描述 : </td>
<td><%=Desctxt%></td>
</tr>
<tr>
<td colspan="2">
<%
If instr(FileContent,"image")=0 Then
response.write "你上傳的檔案不是圖形格式~!!!"
Else
response.write "<img src='" & hrefurl & "'>"
End If
%>
</td>
</tr>
</table>
<%
'Response.AddHeader "content-disposition","attachment;filename=" & filename
response.end
Function bin2str(binstr)
Dim varlen,clow,ccc,skipflag
skipflag=0
ccc = ""
If Not IsNull(binstr) Then
varlen=LenB(binstr)
For i=1 To varlen
If skipflag=0 Then
clow = MidB(binstr,i,1)
If AscB(clow) > 127 Then
ccc =ccc & Chr(AscW(MidB(binstr,i+1,1) & clow))
skipflag=1
Else
ccc = ccc & Chr(AscB(clow))
End If
Else
skipflag=0
End If
Next
End If
bin2str = ccc
End Function
Function str2bin(varstr)
str2bin=""
For i=1 To Len(varstr)
varchar=mid(varstr,i,1)
varasc = Asc(varchar)
If varasc<0 Then
varasc = varasc + 65535
End If
If varasc>255 Then
varlow = Left(Hex(Asc(varchar)),2)
varhigh = right(Hex(Asc(varchar)),2)
str2bin = str2bin & chrB("&H" & varlow) & chrB("&H" & varhigh)
Else
str2bin = str2bin & chrB(AscB(varchar))
End If
Next
End Function
Function Save2File(FileName,binInput,imgstar,imglen)
Dim GP_strm1, GP_strm2
Set GP_strm1 = Server.CreateObject("ADODB.Stream")
Set GP_strm2 = Server.CreateObject("ADODB.Stream")
GP_strm1.Open
GP_strm1.Type = 1 'Binary
GP_strm2.Open
GP_strm2.Type = 1 'Binary
GP_strm1.Write binInput
GP_strm1.Position = imgstar-1
GP_strm1.CopyTo GP_strm2,imglen
GP_strm2.SaveToFile FileName,2 ' adSaveCreateNotExist 1 或選 adSaveCreateOverWrite 2
GP_strm1.Close
GP_strm2.Close
set GP_strm1 = nothing
set GP_strm2 = nothing
Save2File=FileName
End Function
%>