上传文件——file标签深藏功与名

  在Html标签中,<input type="file"/>是被用来上传文件的,但是这哥们儿在不同的浏览器下各有一副嘴脸,怎一个“别扭”了得。一直想解决这个头疼的问题,最近在读了一篇博文之后,忽然有了思路。

  在上传文件时,<input type="file"/>是被放在一个form中,form既然要上传文件,一定是以post方式传输数据,enctype也要设置成multipart/form-data。如下:

<form id="uploadForm"  action="test.ashx" method="post" enctype="multipart/form-data">
 <input type="file" name="uploadFile" id="uploadFile" style="visibility:hidden;position:absolute;top:0px;width:0px"/>
</form>
<input type="button" value="上传" id="btn"/>

  既然file标签长得不好看,就不让它显示,本来想设置display属性,但是在苹果浏览器下没能实现上传,只好设置visibility为hidden,但这么一来,file标签就独占了空白的一块区域,所以又继续设置了后面三个属性。这样页面上就只有一个button按钮,此时只需要设置按钮点击时触发file标签的点击事件,而当选择完上传的文件之后,将触发file标签的onchange事件,只需要在此事件中提交form表单的数据即可。如下:

<script src="jquery-1.8.2.js"></script>
    <script type="text/javascript">
        $(function () {
            //按钮的点击事件
            $(‘#btn‘).click(function () {
                //触发file的点击事件
                $(‘#uploadFile‘).click();
            });
            //file的change事件
            $(‘#uploadFile‘).change(function () {
                //提交form表单的数据
                $(‘#uploadForm‘).submit();
            });
        });
    </script>

  当然,在提交数据时还可以使用AjaxForm实现异步提交,至于后台的操作,这里就不再赘述。

  file标签虽然被隐藏,但依然完成了它的工作,也算深藏功与名,而页面上那个孤零零的button就成了一个任人打扮的小姑娘。本人实在不擅于搞CSS这些东东,窃以为应该还有更好的方式实现这个效果,希望众位高手们可以不吝赐教。

时间: 2024-10-07 06:47:02

上传文件——file标签深藏功与名的相关文章

上传文件 file upload 学习笔记

这里我只会说说一些完成 file upload 的基础 API. 很多项目我们需要上传文件. 有简单的 input file, 有需要验证的,有需要压缩的(img),有需要分段的(video),有需要体验好(display on local, ajax & percent) 等等 要完成以上的所有需求,我们需要很多底层的 API, 比如 File, FileReader, Canvas , XMLHttpRequest , Blob 要把这个控件写好的话,需要一些设计模式,不过这篇不会涉及这个,

postman测试请求API:方式post、上传文件file

这里介绍下postman测试请求API (1)测试get请求 根据请求文档API测试get请求,传参通过params传参 (2)测试post请求 通过body传参,但参数类型不同,分为文本类型和文件类型 其他为文件类型 1.文件类型 2.文本类型 . 原文地址:https://www.cnblogs.com/jianxian/p/12616854.html

Django框架 之 Form表单和Ajax上传文件

浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html <h3>form表单上传文件</h3> <form action="/upload_file/" method="post" enctype="multipart/form-data"> <p><input type="file" name="upload_fi

JAVA模拟HTTP post请求上传文件

在开发中,我们使用的比较多的HTTP请求方式基本上就是GET.POST.其中GET用于从服务器获取数据,POST主要用于向服务器提交一些表单数据,例如文件上传等.而我们在使用HTTP请求时中遇到的比较麻烦的事情就是构造文件上传的HTTP报文格式,这个格式虽说也比较简单,但也比较容易出错.今天我们就一起来学习HTTP POST的报文格式以及通过Java来模拟文件上传的请求. 首先我们来看一个POST的报文请求,然后我们再来详细的分析它. POST报文格式 [plain] view plain co

JSP通过SmartUpload上传文件实例

httpRequest.setCharacterEncoding("gbk"); String preName = genName.doMake();//设置文件前缀名 String extName = null; String allName = null; String fileName = null; try { //初始化 sUpload.initialize(servletConfig, request, response); //设置文件最大上传为10M sUpload.s

通过`RestTemplate`上传文件(InputStreamResource详解)

通过RestTemplate上传文件 1.上传文件File 碰到一个需求,在代码中通过HTTP方式做一个验证的请求,请求的参数包含了文件类型.想想其实很简单,直接使用定义好的MultiValueMap,把文件参数传入即可. 我们知道,restTemplate 默认定义了几个通用的消息转换器,见org.springframework.web.client.RestTemplate#RestTemplate(),那么文件应该对应哪种资源呢? 看了上面这个方法之后,可以很快联想到是ResourceHt

html input file标签的上传文件 注意点

文件上传框  代码格式:<input type=“file” name=“...” size=“15” input enctype="multipart/form-data“ maxlength=“100”> 属性解释: 属性解释: type=“file”定义文件上传框: name属性定义文件上传框的名称,要保证数据的准确采 集,必须定义一个独一无二的名称: size属性定义文件上传框的宽度,单位是单个字符宽度: maxlength属性定义最多输入的字符数. 注意: 要使得文件上载能

struts2 File标签上传文件

1.action.class private File pictureType; private String pictureTypeContentType; private String pictureTypeFileName; public String editType() throws IOException{ Type t=typeService.find(Type.class, id); System.out.println("id="+id); System.out.pr

上传文件 隐藏input type=&quot;file&quot;,用其它标签实现

html: <a id="js-load-diagram" title="导入BPMN文件" onclick="bpmnFile.click()"> 上传文件 <input type="file" id="bpmnFile" style="display:none"> </a> js: $('#bpmnFile').on('change', funct