Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择后开始文件上载_Javascript_Html_Client Side - Fatal编程技术网

Javascript 选择后开始文件上载

Javascript 选择后开始文件上载,javascript,html,client-side,Javascript,Html,Client Side,通常,要上传文件,需要两个步骤-选择一个文件,然后确认上传。我正在上传个人资料图片。由于个人资料图片通常很小,我想减少鼠标点击我的用户,使文件上传开始时,文件选择。请提出实现这一目标的好方法,也许是常见的方法(我还想了解它们的缺陷,如果有的话)。谢谢。您可以使用JQuery在选择后自动将文件发布到服务器 问题: 如果用户不想选择该文件,但该文件已上载到服务器,该怎么办 如果上一个事件发生在文件完成上载之前,该怎么办 当用户不做任何事情并关闭页面时,情况如何?如果你使用GMail,你会注意到他们有

通常,要上传文件,需要两个步骤-选择一个文件,然后确认上传。我正在上传个人资料图片。由于个人资料图片通常很小,我想减少鼠标点击我的用户,使文件上传开始时,文件选择。请提出实现这一目标的好方法,也许是常见的方法(我还想了解它们的缺陷,如果有的话)。谢谢。

您可以使用JQuery在选择后自动将文件发布到服务器

问题:

如果用户不想选择该文件,但该文件已上载到服务器,该怎么办

如果上一个事件发生在文件完成上载之前,该怎么办


当用户不做任何事情并关闭页面时,情况如何?如果你使用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>