无组件上传图片,窗口自动关闭。
各位兄弟姐妹,小弟碰到一个问题。
就是有个客户反应说,在我们网站,上传图片,点击“上传”会弹出一个窗口,然后他在这个窗口上传图片的时候,上传的过程这个窗口就自动关闭了,然后图片也不上传成功,也没有任何提示。
这个弹出窗口中没有一句话代码是关闭这个窗口的。
小弟用的程序是无组件上传程序。
''主程序开始部分
dim formsize,formdata,Msg
formsize = Request.TotalBytes
If Formsize > 204800 Then
UploadSize=false
Response.Write "<script>alert('你要上传的图片大小超出200KB,请把图片大小修改成小于200KB再上传。');history.go(-1);</Script>"
Response.End
End If
If Formsize < 600 Then
UploadSize=false
Response.Write "<script>alert('请选择您要上传的图片。');history.go(-1);</Script>"
Response.End
End If
formdata = Request.BinaryRead(formsize)
UploadSize=true
dim sinfo_Stream
set Sinfo_Stream = Server.CreateObject("adodb.stream")
Sinfo_Stream.Type = 1 ''2进制流
Sinfo_Stream.Mode = 3 ''读写模式
Sinfo_Stream.Open
Sinfo_Stream.Write formdata ''保存二进制内容到流对象
''分离数据变量
dim VbEnter
dim spStr,lenOfspStr,bpos
dim loopcnt,exitflag,ppoint,npoint
''保存数据变量
dim FldData,fldHeadStr,infldpos
dim databpos,datalen
dim FldInfo(15,1)
''fldInfo(0)表单头内容
''fldInfo(1)表单数据
VbEnter = chrb(13)&chrb(10)''读取第一个VbEnter位置
bpos = Instrb(formdata,VbEnter)
SpStr = midb(formdata,1,bpos+1) ''包含了一个0d0a
LenOfspStr = lenb(Spstr)
ppoint = LenOfspStr+1 ''位置指针,指向每一个表单域内容的开始位置
formdata = midb(formdata,ppoint)
loopcnt = 0 ''表单元素
do
bpos = instrb(formdata,spStr) ''分割位置
npoint = (ppoint+bpos+lenofspstr-1) ''指向下一表单开始位置
if bpos < 1 then
fldData = midb(formdata,1,instrb(formdata,leftb(spStr,lenOfspstr-2))-1)
bpos = lenb(fldData)+1
exitflag = true
else
FldData = leftb(formdata,bpos-1)
formdata = midb(formdata,bpos+LenOfspstr)
end if
infldpos = instrb(fldData,vbEnter&vbEnter)
fldHeadStr = bytes2bstr(midb(fldData,1,infldpos-1))
fldInfo(loopcnt,0) = fldHeadStr ''表单头
''Response.Write fldHeadStr&"<br>"
databpos = (ppoint+infldpos-1+4)
Sinfo_Stream.Position = databpos-1
datalen = (bpos-infldpos-6)
if datalen = 0 then
fldInfo(loopcnt,1) = ""
else
fldInfo(loopcnt,1) = Sinfo_Stream.Read(datalen)
end if
ppoint = npoint
loopcnt = loopcnt + 1
loop until exitflag = true
Sinfo_Stream.close
set Sinfo_Stream = Nothing
''以上程序数据处理过程
''处理文件上传开始
Sub SaveData(cs)
filedata = myrequest(cs)
filesize = lenb(filedata)
if filesize <> 0 then
filename = GetFileName(cs)
FileTypeName = GetFileTypeName(FileName)
If IsvalidFile(FileTypeName)=false Then
Response.Write "<script>alert('文件类型非法,不允许上传"&FileTypeName&"文件,只能上传.gif或.jpg文件!');history.go(-1);</Script>"
Response.End
Exit Sub
End If
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&"."&FileTypeName
basepath = "../UserDocument/"&goname&"/Picture/"
'===================================================
set fso =server.CreateObject("Scripting.FileSystemObject")
If Fso.folderExists(server.mappath("../UserDocument"))=false Then
Fso.Createfolder(server.mappath("../UserDocument"))
end if
If Fso.folderExists(server.mappath("../UserDocument/"&goname&""))=false Then
Fso.Createfolder(server.mappath("../UserDocument/"&goname&""))
end if
If Fso.folderExists(server.mappath("../UserDocument/"&goname&"/Picture"))=false Then
Fso.Createfolder(server.mappath("../UserDocument/"&goname&"/Picture"))
end if
set fso =nothing
dim Fstream
set FStream = Server.CreateObject("adodb.stream")
fstream.mode = 3
fstream.type = 1
fstream.open
fstream.position = 0
fstream.Write filedata
fstream.savetofile Server.Mappath(basepath&filename),2
fstream.close
set fstream = nothing
'============================
else
Response.Write "<script>alert('请选择您要上传的文件!');history.go(-1);</Script>"
Response.End
end if
dim filename1
filename1="UserDocument/"&goname&"/Picture/"&filename
%>
<script language="javascript">
function hd(){
window.opener.document.<%=myrequest("FormName")%>.<%=myrequest("EditName")%>.value="<%=FileName1%>";
window.opener.document.<%=myrequest("FormName")%>.logo1.src="../<%=FileName1%>";
window.opener.document.<%=myrequest("FormName")%>.logo2.value="重新上传图片";
window.opener.document.<%=myrequest("FormName")%>.logo3.style.display="";
window.opener.document.<%=myrequest("FormName")%>.logo4.style.display="";
}
hd();
</script>
<%End Sub
SaveData("logo")%>
还有一点,我自己的机子测试没有问题,很多客户上传也没有问题,而这个有问题的客户,他说他自己在阿里巴巴和慧聪上传也是没有问题,所以到底是什么我也搞不太清楚了。
所以希望大哥大姐能教教我。跪求。