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

zhongjingbao 2008-08-22 09:38:47
各位兄弟姐妹,小弟碰到一个问题。

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

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

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


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


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


所以希望大哥大姐能教教我。跪求。
...全文
177 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Anlige 2008-09-01
  • 打赏
  • 举报
回复
........
试试我的~
http://www.ii-home.cn/detial.asp?id=143
里面有个很简单的例子~~examples文件夹里面~
zhongjingbao 2008-09-01
  • 打赏
  • 举报
回复
楼上说的对,如果ie死掉的话,应该是全部关闭才对.

这个问题搞死人了,算了,那有没有朋友知道哪一个上传组件比较稳定,通用性比较好的,麻烦说一下,小弟非常感谢 。
amuro200 2008-08-27
  • 打赏
  • 举报
回复
如果是IE死掉的话,应该所有的IE窗口都关闭了,不会只关这一个吧.
rankisky 2008-08-27
  • 打赏
  • 举报
回复
观察下上传时候IExplorer的进程,估计IE死掉的可能性比较大。。。
rankisky 2008-08-27
  • 打赏
  • 举报
回复
观察下上传时候IExplorer的进程,估计IE死掉的可能性比较大。。。
zhongjingbao 2008-08-27
  • 打赏
  • 举报
回复
以下就是上传页面的代码,提交到的页面就是我主题帖发的页面代码。

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>图片上传</title>
<style type="text/css">
<!--
td{font-size:12px}
.button{font-size:12px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width: 0px; height: 16px; width: 80px; background-color: #eeeeee; cursor: hand}
body {
margin-top: 5px;
}
-->
</style>
<script language="javascript">
<!--
function mysub(){esave.style.visibility="visible";}

var img=null;

function s()
{
if(img)img.removeNode(true);
img=document.createElement("img");
img.style.position="absolute";
img.style.visibility="hidden";
img.attachEvent("onreadystatechange",orsc);
img.attachEvent("onerror",oe);
document.body.insertAdjacentElement("beforeend",img);
img.src=addform.SMT_pic.value;
}
function oe()
{
alert("cant load img");
}
function orsc()
{

}

function MM_openBrWindow() { //v2.0

s()
var theURL="img.asp?img="+addform.SMT_pic.value+"&w="+img.offsetWidth+"&h="+img.offsetHeight
var winName="查看水印图片"
var features="width="+img.offsetWidth+",height="+img.offsetHeight
window.open(theURL,winName,features);
}



-->
</script>
</head>

<body>
<%
formName=request("formName") '回传到上页面编辑框所在Form的Name
EditName=request("EditName") '回传到上页面编辑框的Name
%>
<form name="addform" method="post" action="aa.asp" enctype="multipart/form-data">



<div id="esave" style="position:absolute; top:18px; left:40px; z-index:10; visibility:hidden">
<TABLE WIDTH=340 BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><td width=20%></td>
<TD bgcolor=#104A7B width="60%">
<TABLE WIDTH=100% height=120 BORDER=0 CELLSPACING=1 CELLPADDING=0>
<TR>
<td bgcolor=#eeeeee align=center><font color=red>正在上传文件,请稍候...</font></td>
</tr>
</table>
</td><td width=20%></td>
</tr></table></div>




<table width="400" border="1" cellspacing="0" cellpadding="3" bordercolordark="#FFCC00" bordercolorlight="#FFCC00">


<input type="hidden" name="EditName" value="<%=EditName%>">
<input type="hidden" name="FormName" value="<%=formName%>">
<tr>
<td height="20" bgcolor="#FFE479">图片上传</td>
</tr>
<tr>
<td height="80">选择文件:<input name="SMT_pic" type="file" class="TextBoxT" id="SMT_pic" size="35" onChange="s()"><br>
          <font color=red>是否加防盗水印</font>
<label>
<input name="h2yin13736211692abao" type="radio" id="radio" value="a1" checked onclick="sy3.style.display=''">

<input type="radio" name="h2yin13736211692abao" id="radio2" value="a" onclick="sy3.style.display='none'">

</label>
 <span id="sy3" style="DISPLAY:"><a href="javascript:MM_openBrWindow()" onClick="s()">查看水印后的效果</a></span></td>
</tr>
<tr>
<td align="center" bgcolor="#FFE479"><input type="submit" name="Submit" value="· 开始上传 ·" class="button" onclick="javascript:mysub()"></td>
</tr>



</table>

</form>
</body>
</html>
suano 2008-08-22
  • 打赏
  • 举报
回复
浏览器版本,浏览器设置,还有他们公司的网络权限,有些公司不让上传和下载的
zhongjingbao 2008-08-22
  • 打赏
  • 举报
回复
不是本地,是本机测试没有问题,就是文件已经在服务器上面了,我在我自己机子打开浏览器访问,上传是没有问题的,我换过很多机子都没有问题,我们网站有几百家会员,也基本很少有反应这样的问题。

但这个有问题的客户,在阿里跟慧聪网上传没有问题,而且我跟他远程过,的确真正是存在这样的问题。

很头大。
jhwcd 2008-08-22
  • 打赏
  • 举报
回复
如果你本地上没有问题,那是不是你的上传文件夹的权限不可写吧,加上可写的权限试试。
zhongjingbao 2008-08-22
  • 打赏
  • 举报
回复
如果各位大哥大姐,还需要什么配合资料,小弟我一定发上来。
zhongjingbao 2008-08-22
  • 打赏
  • 举报
回复
如果各位大哥大姐,还需要什么配合资料,小弟我一定发上来。
zhongjingbao 2008-08-22
  • 打赏
  • 举报
回复
如果各位大哥大姐,还需要什么配合资料,小弟我一定发上来。
hfdsoft 2008-08-22
  • 打赏
  • 举报
回复
程序本身就很乱。

主程序部分是处理上传数据的。。

关闭窗口的可能:

1、JS关闭

2、IE自己死掉。

所在,请提供和上传有关的页面源码。主要是HTML源码,或由ASP生成HTML的部分。
zhongjingbao 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 suano 的回复:]
浏览器版本,浏览器设置,还有他们公司的网络权限,有些公司不让上传和下载的
[/Quote]

浏览器版本没有问题,ie6.0,如果说是设置或权限的问题,为什么他操作其他网站是可以的呢。
如果说我们网站的问题,为什么大部份用户都没有问题呢?

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧