关于有文件上传的form提交的问题,好像挺困难的

wxhbqyh 2006-08-27 03:26:41
这个文件上传是要由js在后台自动提交的,上传前如果不把file设置为disabled=true,那么提交就会报错“拒绝访问”,但是把file设置为disabled=true后,服务器端却又得不到file;
这个问题有解决的办法吗?

还有一个问题就是如何在后台提交,而前台不会有任何改变和刷新?

下面是关键的代码:

<html>
<body>
<form name="muploadfile_19_form" method="post" enctype="multipart/form-data" action="/website/app?serviceId=MultiUpload&muploaduid=muploadfile_19">
<input type="text" style="border-width: 0px;" readOnly="true" onpropertychange="muploadfile_19_form.submit();" name="muploadfile_19_filetext">
<input type="file" style="display: none;" onchange="document.getElementById('muploadfile_19_filetext').value=this.value" name="muploadfile_19_file">
</form>

<script language="javascript">
document.getElementById('muploadfile_19_file').click();
</script>
</body>
</html>
...全文
169 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxhbqyh 2006-08-27
  • 打赏
  • 举报
回复
我也觉得我上面修改的不对,不应该把处理上传文件的页面地址写在iframe的src里,现在又改了一下,iframe的src="";form的target指向iframe的name,然后form的action是处理上传文件的页面地址,但是由js自动提交时还是报错“拒绝访问”,我快没辙了
<html>
<body>
<iframe name="muploadfile_19_frame" src="" style="display:none"></iframe>
<form name="muploadfile_19_form" method="post" enctype="multipart/form-data" target="muploadfile_19_frame" action="/website/app?serviceId=MultiUpload&muploaduid=muploadfile_19">
<input type="text" style="border-width: 0px;" readOnly="true" onpropertychange="muploadfile_19_form.submit();" name="muploadfile_19_filetext">
<input type="file" style="display: none;" onchange="document.getElementById('muploadfile_19_filetext').value=this.value" name="muploadfile_19_file">
</form>

<script language="javascript">
document.getElementById('muploadfile_19_file').click();
</script>
</body>
</html>
fosjos 2006-08-27
  • 打赏
  • 举报
回复
又看错了,抱歉啦
action肯定是要加的
fosjos 2006-08-27
  • 打赏
  • 举报
回复
onchange="document.getElementById('muploadfile_19_filetext').value=this.value"

input type=file在javascript语句中是只读的,不能用写
wxhbqyh 2006-08-27
  • 打赏
  • 举报
回复
还是不行,首先iframe会在加载时自动请求处理上传文件的地址;这样的话服务器端会出错;然后就是我把form的action删除了,按照你们说得在form添加target="muploadfile_19_frame",但是还是报错拒绝访问;
请问是不是我的代码哪里还有问题?
谢谢
<html>
<body>
<!--添加的隐藏iframe-->
<iframe name="muploadfile_19_frame" src="/website/app?serviceId=MultiUpload&muploaduid=muploadfile_19" style="display:none"></iframe>
<form name="muploadfile_19_form" method="post" enctype="multipart/form-data" target="muploadfile_19_frame">
<input type="text" style="border-width: 0px;" readOnly="true" onpropertychange="muploadfile_19_form.submit();" name="muploadfile_19_filetext">
<input type="file" style="display: none;" onchange="document.getElementById('muploadfile_19_filetext').value=this.value" name="muploadfile_19_file">
</form>

<!--测试-->
<script language="javascript">
document.getElementById('muploadfile_19_file').click();
</script>
</body>
</html>
leohuang 2006-08-27
  • 打赏
  • 举报
回复
不是把这些东东放iFrame里

是提交到iFrame里,这个iFrame是隐藏的

<iFrame src="文件上传处理程序.asp" style="display:none" name="frmFileUp"></iFrame>

把form的target设为iFrame的name
wxhbqyh 2006-08-27
  • 打赏
  • 举报
回复
但是我们的需求是可以动态添加多个文件上传,所以下面的这段代码:
<form name="muploadfile_19_form" method="post" enctype="multipart/form-data" action="/website/app?serviceId=MultiUpload&muploaduid=muploadfile_19">
<input type="text" style="border-width: 0px;" readOnly="true" onpropertychange="muploadfile_19_form.submit();" name="muploadfile_19_filetext">
<input type="file" style="display: none;" onchange="document.getElementById('muploadfile_19_filetext').value=this.value" name="muploadfile_19_file">
</form>
会动态添加,这样iframe的高度不够的话会出滚动条的,这应该不是我们想要的
孟子E章 2006-08-27
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/TopicView1.asp?id=4978286

提交目标为一个隐藏的iframe/frame即可
<form target="frameName"

87,920

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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