如何在javaScript中上传文件?

时间:2013-04-23 10:29:42

标签: javascript jquery html

当我们基本上在html上传文件时,我们写了

<input type="file" />

此代码提供ChooseFile按钮,no file chosen

但我想要的是创建一个超链接,并点击超链接,使其像type="file"类型的输入一样工作 - 例如:

<a href="#" >ChooseFile</a>

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

不要认为你可以将input = file按钮设置为超出某个限制,

检查这些链接

http://www.quirksmode.org/dom/inputfile.html

Style input type file?

或者您可以尝试使用现成的插件为您完成这项工作

https://github.com/blueimp/jQuery-File-Upload

答案 1 :(得分:1)

我认为这对你有帮助..

<!DOCTYPE html>
    <html>
    <body>

    <p>Click on one of the text labels to toggle the related control:</p>

    <div>
      <a href='#UPLOAD' >Upload a file</a>  
      <input type='file'  name='file1'  
           style='cursor:pointer; opacity:0.01; alpha(opacity=1); position:relative; z-index:200; left: -10em; margin:-0.3em;' />   
    </div>

    </body>
    </html>

答案 2 :(得分:0)

尝试使用现有的jquery插件上传文件,我推荐这个:http://blueimp.github.io/jQuery-File-Upload/

答案 3 :(得分:0)

最好的办法是使用一个记录良好的技巧,最终将文件输入元素隐藏为div的子节点,以满足您的需求。我说这是有据可查的,因为它是关于SO的一个非常常见的常见问题解答,并且在互联网上的许多其他网站和博客文章中都有介绍。

请勿使用javascript单击您的文件输入元素。您可能会遇到浏览器实施的安全限制。有些浏览器可能甚至不允许这样做。其他如IE,在使用javascript单击文件输入元素后尝试通过javascript发送文件时会抛出安全错误。

如果您想避免重新发明轮子,可以使用预先构建的库来处理跨浏览器文件上传的复杂性。我推荐Fine Uploader。它得到了很好的支持,非常活跃,而且发展迅速。完全披露:我是这个图书馆的主要维护者。