Javascript 选择后开始文件上载
通常,要上传文件,需要两个步骤-选择一个文件,然后确认上传。我正在上传个人资料图片。由于个人资料图片通常很小,我想减少鼠标点击我的用户,使文件上传开始时,文件选择。请提出实现这一目标的好方法,也许是常见的方法(我还想了解它们的缺陷,如果有的话)。谢谢。您可以使用JQuery在选择后自动将文件发布到服务器 问题: 如果用户不想选择该文件,但该文件已上载到服务器,该怎么办 如果上一个事件发生在文件完成上载之前,该怎么办Javascript 选择后开始文件上载,javascript,html,client-side,Javascript,Html,Client Side,通常,要上传文件,需要两个步骤-选择一个文件,然后确认上传。我正在上传个人资料图片。由于个人资料图片通常很小,我想减少鼠标点击我的用户,使文件上传开始时,文件选择。请提出实现这一目标的好方法,也许是常见的方法(我还想了解它们的缺陷,如果有的话)。谢谢。您可以使用JQuery在选择后自动将文件发布到服务器 问题: 如果用户不想选择该文件,但该文件已上载到服务器,该怎么办 如果上一个事件发生在文件完成上载之前,该怎么办 当用户不做任何事情并关闭页面时,情况如何?如果你使用GMail,你会注意到他们有
当用户不做任何事情并关闭页面时,情况如何?如果你使用GMail,你会注意到他们有一个将文件附加到电子邮件的拖放解决方案。将鼠标从桌面拖到预定义的区域上,然后单击“wallah” 如果您对使用HTML5的人有HTML5支持(如果他们保持最新,大多数人应该支持),那么您可以使用HTML5内置的拖放功能 试着看看这个:
你也可以试试Plupload之类的东西(http://www.plupload.com/)但这可能有点过分了。Plupload更适合需要进度动画和分块的较大文件。但是,我知道您可以编写脚本,以便上传立即开始,并在完成后立即重定向。它还可能需要服务器端的工作,而您没有为此进行设置。当从文件上载字段中选择文件时,
更改事件将触发。如果未选择任何文件(字段已清除),则该字段的值将为'
var file=document.getElementById('formfile');
var submit=document.getElementById('formsubmit');
//如果脚本可用,则可以自动提交表单,因此无需提交
//需要按钮。
//
submit.parentNode.removeChild(提交);
//当用文件名填写字段时,提交表单
//
file.onchange=function(){
如果(此.value!='')
这个.form.submit();
};
这是个好主意吗?有问题。如果用户不认为表单会产生负面影响,则自动提交表单。感谢您提供解决方案。至于你提到的问题,我认为在我的情况下,对form.submit()的调用不会引起太大的关注。在IE8和更低版本上,对form.submit()的调用将失败,访问被拒绝。我没有尝试IE6,只是IE7和IE8,它在对form.submit()的调用中给出了一个拒绝访问的选项。我假设是因为@Maurice:在IE8中对我很好。链接的问题只是,如果您自己在文件上载字段上调用了click()
,则访问被拒绝。。。这个例子没有做到这一点。啊,好的,我知道了,我试过了,在调用submit时发生异常,但只有在您以前调用过的情况下才会发生。click(),odd。
<form method="post" action="upload.script">
<input type="file" id="formfile"/>
<input type="submit" id="formsubmit"/>
</form>
<script type="text/javascript">
var file= document.getElementById('formfile');
var submit= document.getElementById('formsubmit');
// If scripting is available, can auto-submit the form, so no submit
// button needed.
//
submit.parentNode.removeChild(submit);
// When field is filled in with a filename, submit form
//
file.onchange= function() {
if (this.value!=='')
this.form.submit();
};
</script>