1.6 文件上传组件

1.6 文件上传组件
1.6.1 基本形制
<input type="file" name="myfile"/>

1.6.2 常用属性
1.6.2.1 类型type
type="file"说明这个控件是一个文件上传组件,由一个文本框和一个按钮组合而成。

1.6.2.2 名称name
name是文件上传组件名,是后台服务器负责处理文件的部分与前台上传组件联系的唯一途径。

前台需要通过它告知后台,后台需要它了解前台。

详情请参考1.6.4.1中<input type="file" name="myfile"/>和@RequestParam("myfile") MultipartFile file的对应关系

以及1.6.4.2中多个<input type="file" name="myfile"/>和@RequestParam("myfile") MultipartFile[] files的对应关系

1.6.2.3 宽度size
这个属性决定了显示文件路径的文本框的可见字符数,默认20。这个间接确定了此控件的宽度。

1.6.3 JS操作
1.6.3.1 取值
文件上传组件的value属性可以得到文件全路径文件名,如果没有选择文件则会得到零长度字符串。
var file=document.getElementsByName("myfile")[0];
alert(file.value);
注意用JS对value赋值无效。

1.6.3.2 创建
以下代码实现了动态创建文件上传组件并加入到一个div中
var div=document.getElementById("myDiv");

var file1=document.createElement("input");
file1.type="file";
file1.name="myfile";

div.appendChild(file1);
div.appendChild(document.createElement("br"));

1.6.4 后台响应(SpringMVC负责处理请求)
1.6.4.1 单文件方案
这个方案里前台组件名和后台file是一一对应的关系,所以一个文件上传组件名对一个MultipartFile变量,双方通过name建立联系。
前台:
<form name="form1" action="uploadFile.html" method="post" ENCTYPE="multipart/form-data">
    <input type="file" name="myfile"/><br/>
    <input type="submit" value="upload"><br/>
</form>
后台:
@Controller
public class WebController{
    @RequestMapping(value="/uploadFile")
    public String uploadPosdetailFile(@RequestParam("myfile") MultipartFile file,HttpServletRequest request,HttpServletResponse response){
        try {
            String uploadFileName=file.getOriginalFilename();
            request.setAttribute("uploadFileName", uploadFileName);
            
            return "/pages/sample/index.jsp";
        } catch (Exception e) {
            e.printStackTrace();
            
            return "pages/error/index.jsp";
        }
    }
}

1.6.4.2 多文件方案
前台:
下面代码能创建多个文件上传组件,所以后台必须是数组形式
<form name="form1" action="muploadFile.html" method="post" ENCTYPE="multipart/form-data">
    <input type="file" name="myfile"/><br/>
    <input type="submit" value="upload"><br/>
    
    <div id="myDiv"></div>
</form>

<button onclick="addmore()">Add</button>
<script language="javascript" charset="utf-8">
<!--

function addmore(){
    var div=document.getElementById("myDiv");

var file1=document.createElement("input");
    file1.type="file";
    file1.name="myfile";
    
    div.appendChild(file1);
    div.appendChild(document.createElement("br"));
}

//-->
</script>

后台:
注意下面files变成了数组形式,以因对前台可能存在多个文件上传组件的可能。
@Controller
public class WebController{
    @RequestMapping(value="/muploadFile")
    public String muploadFile(@RequestParam("myfile") MultipartFile[] files,HttpServletRequest request,HttpServletResponse response){
        try {
            int i=1;
            for(MultipartFile file:files){
                String uploadFileName=file.getOriginalFilename();
                System.out.println(i+":"+uploadFileName);
                i++;
            }
            
            //request.setAttribute("uploadFileName", uploadFileName);
            
            return "/pages/sample/index.jsp";
        } catch (Exception e) {
            e.printStackTrace();
            
            return "pages/error/index.jsp";
        }
    }
}

版权所有,转载请注明作者出处。

2016年8月2日0:13:42

时间: 2024-10-20 09:00:02

1.6 文件上传组件的相关文章

Atitit..文件上传组件选型and最佳实践总结(2)----断点续传

Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 如何判断一个插件/控件是否支持断点续传?? 1 3. 常用的组件选型结果::马 1 4. 自定义断点续传控件要实现的指标 2 5. 断点续传实现协议ftp/http/ rmi 等选型.. 2 6. 断点续传实现方式activex,plugin,,applet,  Flash ,能不能实现断点续传?? 3 7. Missing required permissions manifest att

异步文件上传组件 Uploader

Uploader是非常强大的异步文件上传组件,支持ajax.iframe.flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持 和常用插件,比如验证.图片预览.进度条等,广泛应用于淘宝网,比如退款系统.爱逛街.二手.拍卖.我的淘宝.卖家中心.导购中心等. Uploader的特性 支持ajax.flash.iframe三种方案,兼容所有浏览器.(iframe不推荐使用) 多主题支持,可以自己定制主题 丰富的插件支持 支持多选批量上传 支持上传进度显示 支持取消上传 支持图片预览(

ASP中文件上传组件ASPUpload介绍和使用方法

[导读]要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件 1 下载和安装ASPUpload  要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件,它的下载网址是:           http://www.persits.com/aspupload.exe       组件提供者网址是:           http://www.aspupload.com    

jQuery.uploadify文件上传组件实例讲解

1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好,无刷新,带上传进度等等.在最近的短信平台开发中,使用Uploadify进行文件上传. Uploadify官网地址是:http://www.uploadify.com/ 可满足项目开发需求. 下载地址:http://www.uploadify.com/wp-content/uploads/files/

JS组件系列——Bootstrap文件上传组件:bootstrap fileinput

原文:JS组件系列--Bootstrap文件上传组件:bootstrap fileinput 前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签,效果不忍直视,于是博主下定决心要找一个好看的上传组件换掉它.既然bootstrap开源,那么社区肯定有很多关于它的组件,肯定也有这种常见的上传组件吧.经过一番查找,功夫不负有心人,还是被博主找到了这个组件:

HTML5文件上传组件美化jQuery插件

简要教程 jQuery.filer是一款简单的HTML5文件上传组件美化jQuery插件.它能够完成单文件和多文件的上传,支持文件的拖拽,支持不同的文件格式校验,支持缩略图和图标等,是一款非常实用的文件上传插件.它的特点还有: 对文件上传File Input组件进行美化 支持多文件上传 支持校验文件:大小,扩展名等 支持创建文件的缩略图 每种类型的文件可以自定义图标 可以为缩略图,图标和input自定义模板和主题 可以移出已选择的文件 可以从剪切板粘贴图片 所有的图标在一个字体文件中 支持文件拖

文件上传组件 FileUpload组件的使用

文件的上传存在的意义 在项目中经常上传文件:qq上传图片,相册上传图片,资料的共享-- 实现文件上传的步骤 1.指定表单的类型为文件上传表单 必须指定表单的属性  enctype="multipart/form-data" <form action="" method="post" enctype="multipart/form-data> <input type="file" name="

JavaScript File API应用——如何设计和实现文件上传组件

(1)精简"带进度条文件上传组件"的设计与实现 XMLHttpRequest第二版为我们提供了便利的progress事件,通过为xhr.upload.onprogress指定处理函数,可以快速制作进度条,JQuery插件参考代码如下: (function($) { $.fn.uploader = function(userOptions) { var options = { id : "uploader", url : "uploadAction.acti

Bootstrap fileinput.js,最好用的文件上传组件

本篇介绍如何使用bootstrap fileinput.js(最好用的文件上传组件)来进行图片的展示,上传,包括springMVC后端文件保存. 一.demo   二.插件引入 <link type="text/css" rel="stylesheet" href="${ctx}/components/fileinput/css/fileinput.css" /> <script type="text/javascri