我想以<input type="file">编程方式在标记上触发click事件.
只是调用click()似乎没有做任何事情,或者至少它没有弹出文件选择对话框.
我一直在尝试使用侦听器捕获事件并重定向事件,但是我无法像点击某个人那样实际执行事件.
当<a href>使用javascript单击链接时,有没有办法打开浏览文件对话框?它应该像普通的文件浏览按钮一样工作,并给出响应中选择的文件的名称/列表.
我有一个看起来像这样的网页
<html>
<head>
<title>File Upload Click Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<div onclick="$('input[type=file]').click()" >CLICK SIMULATOR</div>
<input type="file"></input>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的目标是让div在文件输入上引发点击事件,这似乎与我在IE和Chrome中所期望的完全一样,但在Firefox中不起作用(当你点击时没有打开文件浏览器div).
有没有办法让这个在FF工作?
我在非IE浏览器中遇到"输入标签"的问题
<input type="file" ...
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写我的上传器,只需使用javascript和asp.net.
我上传文件没问题.
我的问题发生当我想在非IE浏览器中获取我的文件时
<input type="file" ...
Run Code Online (Sandbox Code Playgroud)
我不想直接使用,input因为它的外观没有正确改变
我写了这段代码来从硬盘上获取文件:
function $tag(_str_tag) {
return document.getElementsByTagName(_str_tag);
}
function $create(_str_tag) {
return document.createElement(_str_tag);
}
function $open_file() {
_el_upload = $create("input");
_el_body = $tag("body")[0];
_el_upload.setAttribute("type", "file");
_el_upload.style.visibility = "hidden";
_el_upload.setAttribute("multiple", "multiple");
_el_upload.setAttribute("position", "absolute");
_el_body.appendChild(_el_upload);
_el_upload.click();
_el_body.removeChild(_el_upload);
return _el_upload.files;
}
Run Code Online (Sandbox Code Playgroud)
在IE中它工作得很好并且当前返回我的文件; 在Chrome和Firefox中,加载"文件输入对话框"后,它无法返回任何文件.Opera和Safari完全没了.
我可以用这个技巧解决它,但它基本上不好.
_el_upload.click();
alert();
Run Code Online (Sandbox Code Playgroud)
我认为"回调"或"等待功能"可以解决这个问题,但我无法处理它.
我在上传之前使用plupload来对客户端进行缩放.如果用户没有安装flash,silverlight等引擎,我喜欢它优雅地回退到html4的功能.
我希望能够在用户单击页面上的某些元素时启动上传,并且我想处理事件(有时会停止打开文件对话框).实际上我想使用javascript弹出文件对话框.
好的,所以除非用户点击浏览按钮(或覆盖浏览按钮的覆盖),否则HTML4(或者说浏览器,除了chrome:P)不允许我这样做,所以当我得到回退到HTML4时我会接受我不能这样做,但大多数用户将安装闪光灯或Silverlight,他们没有这个限制.所以我的问题是:
如何在plupload中触发文件打开对话框(请记住,我只需要flash和silverlight引擎来执行此操作).
我有一个严重的问题.问题是: java.awt.HeadlessException
现在的问题是,我在一个月之前编写了相同的代码,它在Windows 7和NetBeans 7.1中运行良好.不同之处在于他在servlet中编写代码但是我在Java文件中编写然后从servlet调用该方法.
BELIEVE ME IT'S 100% WORKS.
Run Code Online (Sandbox Code Playgroud)
但现在我在Windows 8和NetBeans 7.3中只有这两个被更改.现在它不起作用给出了无头例外.我能做什么???
现在请告诉我如何上传文件?我需要完整的目录路径,它将保存在数据库中.
Register.jsp:
<a href="UploadUserImage">
<input type="button" class="button round blue image-right ic-upload text-upper" value="Upload" name="upload"/>
</a>
<font style="font-family: Times New Roman; font-size: 16px; color: #2a2e36; font-style: italic;"><%= image %></font>
<input type="hidden" value="images/Member/<%= image %>" name="image"/>
Run Code Online (Sandbox Code Playgroud)
UploadImage.java(Servlet的):
String image="images/"+new UploadFile().Upload();
request.getRequestDispatcher("Register.jsp?image="+image).forward(request, response);
Run Code Online (Sandbox Code Playgroud)
UploadFile.java:
public class UploadFile
{
File file;
public String Upload()
{
try
{
final JFileChooser fc = new JFileChooser();
String[] extensions={"jpg", "png", "gif"};
FileNameExtensionFilter filter=new FileNameExtensionFilter("Images", extensions); …Run Code Online (Sandbox Code Playgroud) 我想知道为什么这个例子在Chrome 10中有效,但在Fx 3.6中不起作用?IFAIK,确切地输入type ="file"点击不起作用...
谁能解释一下,为什么?
javascript ×7
html ×4
jquery ×2
click ×1
file ×1
file-upload ×1
java ×1
jsp ×1
plupload ×1
simulation ×1
swing ×1