1,html页面,上传使用input type=file控件,其所在的form必须加上enctype="multipart/form-data"

    <form role="form" id="form-updUser" name="form-updUser"
method="post" action="updUser" enctype="multipart/form-data">
<div class="form-group">
<label for="username">用户名</label> <input type="text"
class="form-control" id="username" name="username"
placeholder="请输入用户名">
</div>
<div class="form-group">
<label for="name">名称</label> <input type="text"
class="form-control" id="name" name="name" placeholder="请输入名称">
</div>
<div class="form-group">
<label for="palce">归属地</label> <select id="select-province"
name="select-province"></select> <select id="select-city"
name="select-city"></select> </label>
</div>
<div class="form-group">
<label for="apartment">部门</label> <input type="text"
class="form-control" id="apartment" name="apartment"
placeholder="请输入部门">
</div>
<div class="form-group">
<label for="phoneNum">联系方式</label> <input type="text"
class="form-control" id="phoneNum" name="phoneNum"
placeholder="请输入联系方式">
</div>
<input type="hidden" name="id">
<div class="form-group">
<label for="inputfile">文件输入</label> <input type="file"
name="file" id="inputfile"> </div>

<input type="hidden" name="id" id="id">
</form>

2,后台借助于两个开源包

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

引入包之后,后台处理的代码如下

private void process(HttpServletRequest request,
HttpServletResponse response) {
// 进行用户更新,以及联系文件的存储
response.setCharacterEncoding("utf-8");
response.setContentType("html;charset=utf-8");
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding(request.getCharacterEncoding());
try {
List<FileItem> list = upload.parseRequest(request);
for (int i = ; i < list.size(); i++) {
FileItem item = list.get(i);
if (item.isFormField()) {
// 说明是普通的表单字段
// updUser(item);
// request.getRequestDispatcher("/listUser").forward(request, response);
} else if(!item.getName().equals("")){
// 说明是文件
saveFile(item);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} private void saveFile(FileItem item) {
String fileName=item.getName();
//防止文件重名
String imageFileName = new Date().getTime() + new Random().nextInt() +fileName.substring(fileName
.lastIndexOf(".") );
//网站的物理跟路径
String rootPath=this.getServletContext().getRealPath("/");
System.out.println("UpdUser:rootPath:"+rootPath);
String path=rootPath+"files\\";
File dir=new File(path);
if(!dir.exists()){
dir.mkdirs();
}
//将文件写入物理路径
try {
item.write(new File(path,imageFileName));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }

web文件上传的实现的更多相关文章

  1. servlet web文件上传

    web文件上传也是一种POST方式,特别之处在于,需设置FORM的enctype属性为multipart/form-data. 并且需要使用文件域. servlet的代码比较关键是这几句: // 使用 ...

  2. Java Web文件上传

    参考资料:http://www.cnblogs.com/xdp-gacl/p/4200090.html 一.问题描述 Java Web文件上传需要借助一些第三方库,常用的是借助Apache的包,有两个 ...

  3. WEB文件上传下载功能

    WEB文件上传下载在日常工作中经常用到的功能 这里用到JS库 http://files.cnblogs.com/meilibao/ajaxupload.3.5.js 上传代码段(HTML) <% ...

  4. Web 文件上传 目录

    0. SpringMVC -- 梗概--源码--贰--上传 1. Web上传文件的原理及实现 2. Web文件上传方法总结大全 3. SpringMVC 文件上传配置,多文件上传,使用的Multipa ...

  5. Java Web文件上传原理分析(不借助开源fileupload上传jar包)

    Java Web文件上传原理分析(不借助开源fileupload上传jar包) 博客分类: Java Web   最近在面试IBM时,面试官突然问到:如果让你自己实现一个文件上传,你的代码要如何写,不 ...

  6. WEB文件上传漏洞介绍解决办法

    引用:http://blog.csdn.net/kobejayandy/article/details/35861499 问题: -1. 上传文件WEB脚本语言,服务器的WEB容器解释并执行了用户上传 ...

  7. java web 文件上传下载

    文件上传下载案例: 首先是此案例工程的目录结构:

  8. C#实现Web文件上传的两种方法

    1. C#实现Web文件的上传 在Web编程中,我们常需要把一些本地文件上传到Web服务器上,上传后,用户可以通过浏览器方便地浏览这些文件,应用十分广泛. 那么使用C#如何实现文件上传的功能呢?下面笔 ...

  9. Java web文件上传下载

    [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52048666 作者:朱培 ID:sdksdk0 邮 ...

  10. springboot+web文件上传和下载

    一.首先安装mysql数据库,开启web服务器. 二.pom.xml文件依赖包配置如下: <?xml version="1.0" encoding="UTF-8&q ...

随机推荐

  1. html5shiv.js-让IE浏览器支持HTML5标准

    兼容性IE8及以下IE版本 浏览器IE8及以下IE版本对HTML5标签的支持是有限的,我们可以通过在网页中添加脚本的方式来解决目前IE浏览器对HTML5支持的问题. <!–[if IE]> ...

  2. MarkDown编辑器用法

    代码行1 var s = "JavaScript syntax highlighting"; alert(s); 代码行2:ESC下面的英文3个波浪号~按键 var s = &qu ...

  3. PHP函数补完 - var_export

    var_export() 函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码.var_export必须返回合法的php代码, 也就是 ...

  4. nodejs爬虫

    前言 几个月之前,有同事找我要PHP CI框架写的OA系统.他跟我说,他需要学习PHP CI框架,我建议他学习大牛写的国产优秀框架QeePHP. 我上QeePHP官网,发现官方网站打不开了,GOOGL ...

  5. hive中的常用方法(case,cast,unix_timestamp)

    1.case的用法 )格式1 case col when value then '' when value then '' else '' end )格式2 case when col='value' ...

  6. Java Socket Option

    选项 public final static int TCP_NODELAY = 0x0001; public final static int SO_REUSEADDR = 0x04; public ...

  7. windows bat常用命令积累

    1.判断文件夹是否为空  dir/a/b "D:\test"|findstr . >nul&&(echo 有文件)||(echo 空)   2.多层文件夹遍历 ...

  8. Sass和Compass制作雪碧图

    1.安装好了sass与compass之后设置一个配置文件 2.新增一个雪碧图文件夹用来存放将要合并的图片例如color文件夹 3.@import命令引用 .Compass看到@import指令的参数为 ...

  9. HTTP 协议的历史演变和设计思路

    HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点. 本文介绍 HTTP 协议的历史演变和设计思路. 一.HTTP/0.9 HTTP 是基于 TCP ...

  10. (leetcode)Add Digits

    Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...