作者jenny7587 (jenny)
站内Visual_Basic
标题[ASP ] ASP高手可以帮我看一下 上传图片的程式吗?
时间Fri Oct 21 18:05:53 2005
我要做专题 有一小部分要上传图片的
请大家帮忙看一下 程式那里有问题
可以上传成功 可是图片不会出现
还是 如果谁有的 就请寄给我
[email protected]
因为很急 有谁是 ASP很强的 可以帮我吗?
如果觉得这样子很乱 就留一下信箱
我再把整个程式 寄过去 谢谢拜托了
档名 upload_5xsoft.asp
程式
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
dim upfile_5xSoft_Stream
Class upload_5xSoft
dim Form,File,Version
Private Sub Class_Initialize
dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
Version="WLONG3D专用上传程序 Version 1.0"
if Request.TotalBytes < 1 then Exit Sub
set Form=CreateObject("Scripting.Dictionary")
set File=CreateObject("Scripting.Dictionary")
set upfile_5xSoft_Stream=CreateObject("Adodb.Stream")
upfile_5xSoft_Stream.mode=3
upfile_5xSoft_Stream.type=1
upfile_5xSoft_Stream.open
upfile_5xSoft_Stream.write Request.BinaryRead(Request.TotalBytes)
vbEnter = Chr(13) & Chr(10)
iDivLen = inString(1,vbEnter) + 1
strDiv = subString(1,iDivLen)
iFormStart = iDivLen
iFormEnd = inString(iformStart,strDiv) - 1
while iFormStart < iFormEnd
iStart = inString(iFormStart,"name=""")
iEnd = inString(iStart+6,"""")
mFormName = subString(iStart+6,iEnd-iStart-6)
iFileNameStart = inString(iEnd+1,"filename=""")
if iFileNameStart>0 and iFileNameStart<iFormEnd then
iFileNameEnd=inString(iFileNameStart+10,"""")
mFileName = subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
iStart=inString(iFileNameEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
if iEnd > iStart then
mFileSize=iEnd-iStart-4
else
mFileSize = 0
end if
set theFile = new FileInfo
theFile.FileName = getFileName(mFileName)
theFile.FilePath = getFilePath(mFileName)
theFile.FileSize = mFileSize
theFile.FileStart = iStart+4
theFile.FormName = FormName
file.add mFormName,theFile
else
iStart = inString(iEnd+1,vbEnter&vbEnter)
iEnd = inString(iStart+4,vbEnter&strDiv)
if iEnd > iStart then
mFormValue=subString(iStart+4,iEnd-iStart-4)
else
mFormValue = ""
end if
form.Add mFormName,mFormValue
end if
iFormStart = iformEnd+iDivLen
iFormEnd = inString(iformStart,strDiv) - 1
wend
End Sub
Private Function subString(theStart,theLen)
dim i,c,stemp
upfile_5xSoft_Stream.Position=theStart - 1
stemp = ""
for i=1 to theLen
if upfile_5xSoft_Stream.EOS then Exit for
c = ascB(upfile_5xSoft_Stream.Read(1))
If c > 127 Then
if upfile_5xSoft_Stream.EOS then Exit for
stemp = stemp&Chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
i = i + 1
else
stemp=stemp&Chr(c)
End If
Next
subString = stemp
End function
Private Function inString(theStart,varStr)
dim i,j,bt,theLen,str
InString = 0
Str = toByte(varStr)
theLen = LenB(Str)
for i = theStart to upfile_5xSoft_Stream.Size - theLen
if i > upfile_5xSoft_Stream.size then exit Function
upfile_5xSoft_Stream.Position = i - 1
if AscB(upfile_5xSoft_Stream.Read(1)) = AscB(midB(Str,1)) then
InString = i
for j = 2 to theLen
if upfile_5xSoft_Stream.EOS then
inString = 0
Exit for
end if
if AscB(upfile_5xSoft_Stream.Read(1))<>AscB(MidB(Str,j,1)) then
InString=0
Exit For
end if
next
if InString <> 0 then Exit Function
end if
next
End Function
Private Sub Class_Terminate
form.RemoveAll
file.RemoveAll
set form = nothing
set file = nothing
upfile_5xSoft_Stream.close
set upfile_5xSoft_Stream = nothing
End Sub
Private function GetFilePath(FullPath)
If FullPath <> "" Then
GetFilePath = left(FullPath,InStrRev(FullPath, "\"))
Else
GetFilePath = ""
End If
End function
Private function GetFileName(FullPath)
If FullPath <> "" Then
GetFileName = mid(FullPath,InStrRev(FullPath, "\") + 1)
Else
GetFileName = ""
End If
End function
Private function toByte(Str)
dim i,iCode,c,iLow,iHigh
toByte = ""
For i = 1 To Len(Str)
c = mid(Str,i,1)
iCode = Asc(c)
If iCode < 0 Then iCode = iCode + 65535
If iCode > 255 Then
iLow = Left(Hex(Asc(c)),2)
iHigh = Right(Hex(Asc(c)),2)
toByte = toByte & chrB("&H"&iLow) & chrB("&H"&iHigh)
Else
toByte = toByte & chrB(AscB(c))
End If
Next
End function
End Class
Class FileInfo
dim FormName,FileName,FilePath,FileSize,FileStart
Private Sub Class_Initialize
FileName = ""
FilePath = ""
FileSize = 0
FileStart= 0
FormName = ""
End Sub
Public function SaveAs(FullPath)
dim dr,ErrorChar,i
SaveAs = 1
if trim(fullpath) = "" or FileSize = 0 or FileStart = 0 or FileName = "" then exit function
if FileStart = 0 or right(fullpath,1) = "/" then exit function
set dr = CreateObject("Adodb.Stream")
dr.Mode = 3
dr.Type = 1
dr.Open
upfile_5xSoft_Stream.position = FileStart - 1
upfile_5xSoft_Stream.copyto dr,FileSize
dr.SaveToFile FullPath,2
dr.Close
set dr = nothing
SaveAs = 0
end function
End Class
</SCRIPT>
档名upfile
程式:
<!--#include FILE="upload_5xsoft.inc"-->
<%
UpFilePath = "file/" '设定存放的目录
if right(UpFilePath,1) <> "/" then UpFilePath = UpFilePath & "/" '在目录後加(\)
UpFilePath = Server.MapPath(UpFilePath) '抓出完整主机路径
Set fds = Server.CreateObject("Scripting.FileSystemObject")
'建立引用至FileSystemObject物件的fsObj物件变数
'利用FileSystemObject物件的FileExists方法检查目录是否存在(若发生错误,表示该主机不开放建立档案写入权限)
if Not fds.FolderExists(UpFilePath) then fds.CreateFolder(UpFilePath) '建立目录指令
set fds = nothing '清除fsObj物件
FileMaxSize = 500000000 '设定档案允许的大小
Server.ScriptTimeOut = 10000 '设定档案传输时间
FileType = ".jpg.gif.htm" '设定允许的副档名
set upload = new upload_5xsoft ''建立上传对象
dim formName,StrFile
for each formName in upload.file ''列出所有上传的档案
set file = upload.file(formName) ''生成一个档案对象
if file.FileSize > 0 then ''如果 FileSize > 0 说明有档案byte数
if file.FileSize < FileMaxSize then ''如果未超过档案大小限制
if FileType <> "" then '有限制上传档案类型
if Instr(FileType,GetExtendName(file.FileName)) then
TypeFlag = 1 '档案为允许的类型
else
TypeFlag = 0 '档案为不允许的类型
'session("txt") = "不支援您所上传的档案类型﹕"
'session("file") = session("file") & GetExtendName(file.FileName)
end if
else
TypeFlag = 1 '没有限制上传档案类型
end if
if TypeFlag = 1 then
fname = file.FileName
file.SaveAs UpFilePath & "\" & fname ''储存档案
StrFile = StrFile & " " & fname
end if
else
'session("txt") = "档案大小超出限制,您最多可以上传 " & FileMaxSize & "byte的档案"
exit for
end if
end if
set file = nothing
next
set upload = nothing ''删除此对象
'此函数抓取副档名
function GetExtendName(FileName)
dim ExtName
ExtName = LCase(FileName)
ExtName = right(ExtName,3)
ExtName = right(ExtName,3-Instr(ExtName,"."))
GetExtendName = ExtName
end function
if fname <> Empty then
%>
<center><%=StrFile%> 上传完毕</center>
<%
else
%>
<script>alert('上传图片失败,目前只允许使用<%=FileType%>档案')</script>
<%
end if
%>
<p align="center"><a href="upfile.htm">返回上传页</a></p>
档名:upfile.htm
程式:
<script>
function op()
{
txt1 = document.text1.file1.value
if( txt1 != "")
{
var dd = window.open("","new","width=500,height=500");
dd.document.write("<center>预览结果<hr color=#00bbff width=80%><img src=\"" + txt1 + "\"></center>");
dd.document.close();
}
}
</script>
<center>
<p> </p>
<form method="post" action="upfile.asp" name="text1" enctype="multipart/form-data" >
<table border="1" bordercolor="#7B68EE" id="AutoNumber1" cellpadding="0" width="506" height="116">
<tr>
<td bordercolor="#FFFFFF" width="498" height="1" colspan="2" style="border: 1pt solid #000000" align="center" bgcolor="#CCCCCC">
<b>简 易 上 传 测 试</b></td>
</tr>
<tr>
<td bordercolor="#FFFFFF" width="78" height="32" style="border: 1pt solid #7B68EE">
<p align="center"><span lang="zh-tw"><a href="javascript:op()" style="color: #7B68EE"><font size="2">预览</font></a></span>
</td>
<td bordercolor="#FFFFFF" width="416" height="32" align="center">
<span lang="zh-tw">
<font size="2" color="#7B68EE">上传图片 </font></span><input type="file" name="file1" size="20" style="color: #4B0082; font-size: 10 pt; border: 1px solid #4B0082">
<input type="submit" value="传送" name="B1" style="font-size: 10 pt; color: #4B0082; border: 1px solid #4B0082; background-color: #D4D0C8"> <input type="reset" value="重设" name="B2" style="color: #4B0082; border: 1px solid #4B0082; background-color: #D4D0C8">
</td>
</tr>
<tr>
<td bordercolor="#FFFFFF" width="78" height="32" style="border: 1pt solid #7B68EE">
<p align="center"><span lang="zh-tw"><a href="javascript:op()" style="color: #7B68EE"><font size="2">预览</font></a></span>
</td>
<td bordercolor="#FFFFFF" width="416" height="32" align="center">
<span lang="zh-tw">
<font size="2" color="#7B68EE">上传图片 </font></span><input type="file" name="file2" size="20" style="color: #4B0082; font-size: 10 pt; border: 1px solid #4B0082">
<input type="submit" value="传送" name="B1" style="font-size: 10 pt; color: #4B0082; border: 1px solid #4B0082; background-color: #D4D0C8"> <input type="reset" value="重设" name="B2" style="color: #4B0082; border: 1px solid #4B0082; background-color: #D4D0C8">
</td>
</tr>
<tr>
<td bordercolor="#FFFFFF" width="78" height="32" style="border: 1pt solid #7B68EE">
<p align="center"><span lang="zh-tw"><a href="javascript:op()" style="color: #7B68EE"><font size="2">预览</font></a></span>
</td>
<td bordercolor="#FFFFFF" width="416" height="32" align="center">
<span lang="zh-tw">
<font size="2" color="#7B68EE">上传图片 </font></span><input type="file" name="file3" size="20" style="color: #4B0082; font-size: 10 pt; border: 1px solid #4B0082">
<input type="submit" value="传送" name="B1" style="font-size: 10 pt; color: #4B0082; border: 1px solid #4B0082; background-color: #D4D0C8"> <input type="reset" value="重设" name="B2" style="color: #4B0082; border: 1px solid #4B0082; background-color: #D4D0C8">
</td>
</tr>
<tr>
<td bordercolor="#FFFFFF" width="78" height="32" style="border: 1pt solid #7B68EE">
<p align="center"><span lang="zh-tw"><a href="javascript:op()" style="color: #7B68EE"><font size="2">预览</font></a></span>
</td>
<td bordercolor="#FFFFFF" width="416" height="32" align="center">
<span lang="zh-tw">
<font size="2" color="#7B68EE">上传图片 </font></span><input type="file" name="file4" size="20" style="color: #4B0082; font-size: 10 pt; border: 1px solid #4B0082">
<input type="submit" value="传送" name="B1" style="font-size: 10 pt; color: #4B0082; border: 1px solid #4B0082; background-color: #D4D0C8"> <input type="reset" value="重设" name="B2" style="color: #4B0082; border: 1px solid #4B0082; background-color: #D4D0C8">
</td>
</tr>
<tr>
<td bordercolor="#FFFFFF" width="78" height="32" style="border: 1pt solid #7B68EE">
<p align="center"><span lang="zh-tw"><a href="javascript:op()" style="color: #7B68EE"><font size="2">预览</font></a></span>
</td>
<td bordercolor="#FFFFFF" width="416" height="32" align="center">
<span lang="zh-tw">
<font size="2" color="#7B68EE">上传图片 </font></span><input type="file" name="file5" size="20" style="color: #4B0082; font-size: 10 pt; border: 1px solid #4B0082">
<input type="submit" value="传送" name="B1" style="font-size: 10 pt; color: #4B0082; border: 1px solid #4B0082; background-color: #D4D0C8"> <input type="reset" value="重设" name="B2" style="color: #4B0082; border: 1px solid #4B0082; background-color: #D4D0C8">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.204.22
※ 编辑: jenny7587 来自: 61.225.204.22 (10/21 18:08)
1F:推 goooeooo:大家如果要看完这整偏都花多久时间阿 10/23 15:43