无组件上传图片,窗口自动关闭。

zhongjingbao zhongjingbao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位兄弟姐妹,小弟碰到一个问题。

就是有个客户反应说,在我们网站,上传图片,点击“上传”会弹出一个窗口,然后他在这个窗口上传图片的时候,上传的过程这个窗口就自动关闭了,然后图片也不上传成功,也没有任何提示。

这个弹出窗口中没有一句话代码是关闭这个窗口的。

小弟用的程序是无组件上传程序。


''主程序开始部分
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")%>


还有一点,我自己的机子测试没有问题,很多客户上传也没有问题,而这个有问题的客户,他说他自己在阿里巴巴和慧聪上传也是没有问题,所以到底是什么我也搞不太清楚了。


所以希望大哥大姐能教教我。跪求。
...全文
评论 14
收藏 已收藏
分享
返回顶部
zhongjingbao
ASP 28,401 成员 356,940 内容