通过点击按钮实现上传的主要目的是对用户友好。新浪微博则是通过点击文本实现图片上传。
一个简单的例子:
<form method="post" action="http://localhost/" enctype="multipart/form-data">
<input type="button" value="请选择文件" size="30" onclick="f.click()" />
<input type="file" id="f" onchange="this.form.submit()" name="f" style="position:absolute; filter:alpha(opacity=0); opacity:0; width:30px; " size="1" />
</form>
如上例子在 Firefox 4 和 Chrome 11 上正常运行。由于 IE 的怪异表现,若在点击按钮时触发上传文件的字段的 click 事件,即使选中了文件也无法成功上传文件。 IE 8 给出的错误信息是“无法访问”。据说原因是“这个是ie居于安全性考虑的限制。input file必须使用手动触发click事件”。
我们把上述例子修改如下:
<form method="post" action="http://localhost/" enctype="multipart/form-data">
<input type="button" onmousemove="move(event)" value="请选择文件" size="30" />
<input type="file" id="f" onchange="this.form.submit()" name="f" style="position:absolute; filter:alpha(opacity=0); opacity:0; width:30px; " size="1" />
</form>
<script type="text/javascript">
function move(event){
var event=event||window.event;
var a=document.getElementById('f');
a.style.left=event.clientX-50+'px';
a.style.top=event.clientY-10+'px';
}
</script>
跟上个例子相比,为按钮添加了 onmousemove 事件,主要目的是鼠标移动至按钮时,把上传文件字段置于鼠标下,这样点击按钮时实际上点击的是上传文件字段,而不是这个按钮。再次在 IE 下测试,可以上传文件了。
一切看起来很正常,一个潜在的问题是若页面内容超出一屏范围,而很不幸的是按钮和上传字段不在同一屏,问题产生了,点击按钮无法出现选择文件的对话框。这是由于使用了 clientX 和 clientY 事件属性,而 clientY 的坐标不考虑文档的滚动。解决方案是用 jquery 的 pageX 事件属性。它实现了跨浏览器支持。
原文出自:http://blog.csdn.net/rainyjune/article/details/6877975
分享到:
相关推荐
在IT行业中,实现点击按钮预览文件是一种常见的需求,尤其在文档管理、文件分享和协作应用中。这个功能允许用户无需下载文件即可查看其内容,提高了工作效率并节省了存储空间。本地预览文件通常涉及到前端和后端的...
在传统的文件上传方式中,用户通常需要点击按钮选择文件,然后再次点击上传按钮才能发起上传请求。而这个插件通过整合这两个步骤,极大地简化了上传流程,提升了用户体验。 Ajax技术的运用使得文件上传能够在后台...
运用apache的fileupload库实现文件上传,运用jxl分析导入的excel数据。 只需在现有页面上添加一个“导入”按钮就可实现excel导入数据库的功能,点击“导入”按钮,选择要上传的文件后会立即开始上传。 采用iframe的...
2. **触发文件选择**:当用户点击按钮时,我们需要调用浏览器的文件选择API,让用户选择他们想要上传的图片。这通常可以通过监听按钮的点击事件并调用`input[type=file]`元素的`click`事件来实现。 3. **处理多图...
jsp实现文件上传文档 jsp实现文件上传文档是指使用jsp技术实现文件上传和下载功能的文档。该文档主要介绍了jspSmartUpload组件的安装和使用方法,以及该组件的特点和功能。 jsp实现文件上传文档的主要内容包括: ...
在GWT中实现文件上传,首先需要理解的是GWT的事件处理机制,因为文件上传通常涉及到用户交互,比如点击按钮选择文件。这需要我们监听FileUpload组件的onChange事件,当用户选取文件后触发相应的处理函数。在这个处理...
本文将深入探讨如何使用JavaScript实现点击按钮弹出上传文件的窗口。 首先,我们要了解HTML中的`<input>`标签,它用于创建各种输入控件。在文件上传的场景中,我们可以使用`<input type="file">`来创建一个文件选择...
4. 仿淘宝多上传按钮,意味着我们要实现的功能与淘宝网站上的文件上传界面相似,具有多个上传按钮,每个按钮可以独立上传单个文件。 实现这个功能的关键步骤包括: 1. HTML结构:创建包含多个上传按钮的HTML页面。...
本文将深入探讨如何在WebAPI中实现文件上传功能,并介绍如何在MVC应用程序中调用这个API。 一、WebAPI中的文件上传 1. **配置路由**:首先,我们需要在WebAPI的`WebApiConfig.cs`文件中设置允许接收多部分/表单...
在移动端开发中,实现文件上传是一个常见需求。随着HTML5的普及,我们可以利用它提供的接口来实现一个不需要额外插件的文件上传功能。本文将介绍如何使用HTML5、JavaScript以及Ajax技术在移动端实现一个简单的图片...
PHP CMS v9在设计时可能依赖于Flash来处理文件上传,导致在当前环境下,当尝试上传图片时,按钮无响应。 要解决这个问题,我们需要将原有的基于Flash的图片上传插件替换为HTML5的图片上传插件。HTML5提供了File API...
本篇文章将深入探讨如何使用Spring Boot实现文件上传功能,包括设置服务器端口、定义文件存储路径以及如何在前端展示所上传的图片。 首先,我们需要在Spring Boot项目中引入所需的依赖。对于文件上传,我们通常会...
综上所述,实现“网页点击按钮实现视频回放,并且存储到服务端,调用回放”的功能,涉及到音视频处理、Web前端技术、后端服务构建、存储管理、流媒体技术、安全性、性能优化等多个方面。每个环节都需要细致的规划和...
**Ajax 实现文件上传技术详解** 在Web开发中,用户经常需要进行文件上传操作,而传统的文件上传方式通常会刷新整个页面,导致用户体验不佳。随着Ajax(Asynchronous JavaScript and XML)技术的发展,我们可以实现...
在本项目“layui实现文件压缩上传”中,我们重点关注的是如何利用layui的上传组件结合JavaScript技术来处理大图片的压缩,以优化文件上传性能和降低服务器存储负担。以下是对这个知识点的详细阐述: 1. **layui上传...
CSS(Cascading Style Sheets)是实现这一目标的关键工具,它允许我们控制HTML元素的样式,包括文件上传按钮。本文将深入探讨如何使用CSS来自定义文件上传按钮的样式。 首先,我们需要理解文件上传组件的基本结构。...
Uploadify是一款流行的JavaScript插件,它使得在前端实现文件上传变得更加便捷,并且支持多文件选择、进度显示、取消上传等特性。本教程将详细介绍如何在Java环境中利用Uploadify插件实现这些功能。 1. **Uploadify...
前端需要在接收到响应后,创建一个不可见的a标签,设置其download属性,并将其href属性设置为window.URL.createObjectURL(binary)生成的URL,然后通过编程方式触发a标签的点击事件来实现文件下载。示例代码如下: `...
在本文中,我们将深入探讨如何使用CSS来...这种方法可以提高用户界面的美观性和易用性,使得文件上传的过程更加直观。在实际开发中,还可以根据需求进行更复杂的定制,如添加多文件选择、预览功能或自定义错误处理等。
### 使用JavaBean实现文件上传详解 #### 一、理解HTTP文件上传请求 在深入探讨如何使用JavaBean实现文件上传之前,我们首先需要理解文件上传的基本原理。文件上传本质上是通过HTTP请求将文件作为请求体的一部分...