/**
* 文件上传--单文件
*
* @param request
* @param response
* @param path
* 文件存放路径(path为WebApp\后面的内容)
* @return
*/
public final static String fileUpload(HttpServletRequest request,
HttpServletResponse response, String path) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
MultipartFile mFile = null;
for (Iterator<?> i = fileMap.keySet().iterator(); i.hasNext();) {
Object obj = i.next();
mFile = (MultipartFile) fileMap.get(obj);
}
String filePath = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
try {
// 得到上传的文件的文件名
String filename = mFile.getOriginalFilename();
// 获取文件后缀名
if (filename != null && !("").equals(filename)) {
String fileExt = filename.substring(filename.lastIndexOf("."));
// 按时间格式重新生成文件名
String newFileName = sdf.format(new Date())
+ (int) (Math.random() * 100) + fileExt;
filePath = path + "/" + newFileName;
// 得到上传服务器的物理路径
path = request.getSession().getServletContext()
.getRealPath("\\" + path);
// 文件流写到服务器端
File saveFile = new File(path, newFileName);
FileCopyUtils.copy(mFile.getBytes(), saveFile);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return filePath;
}

/**
* 文件上传--多文件
*
* @param request
* @param response
* @param filePaths
* (fileinputId,WebApp\后面的内容)
* @return
*/
public final static Map<String, Object> fileUploads(
HttpServletRequest request, HttpServletResponse response,
String path) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
Map<String, Object> filePaths = new HashMap<String, Object>();
// 得到上传服务器的物理路径
String fileUrl = request.getSession().getServletContext()
.getRealPath("\\" + path);
for (Iterator<?> i = fileMap.keySet().iterator(); i.hasNext();) {
Object obj = i.next();
MultipartFile mFile = (MultipartFile) fileMap.get(obj);
// 得到上传的文件的文件名
String filename = mFile.getOriginalFilename();
if (filename == "" || filename == null) {
continue;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
// 获取文件后缀名
String fileExt = filename.substring(filename.lastIndexOf("."));
// 按时间格式重新生成文件名
String newFileName = sdf.format(new Date())
+ (int) (Math.random() * 100) + fileExt;
String filePath = path + "/" + newFileName;
// 文件流写到服务器端
try {
filePaths.put(obj.toString(), filePath);
File saveFile = new File(fileUrl, newFileName);
FileCopyUtils.copy(mFile.getBytes(), saveFile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return filePaths;
}

/**
* 删除文件,
*
* @param request请求
* @param filePath文件路径
* (static/upload/...)
* @return
*/
public static boolean fileDelete(HttpServletRequest request, String filePath) {
String fileUrl = request.getSession().getServletContext()
.getRealPath("\\" + filePath);// 得到上传服务器的物理路径
File file = new File(fileUrl);
fileDelete(file);
return false;
}

java文件上传(单文件 多文件)与删除的更多相关文章

  1. PHP实现单文件、多文件上传 封装 面向对象实现文件上传

    文件上传配置 客户端配置 1.表单页面 2.表单的发送方式为post 3.添加enctype = "multipart/form-data" <form action=&qu ...

  2. php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)

    网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特 色),学php的人都知道文件上传怎么做,但很多人在编程中 ...

  3. SpringBoot整合阿里云OSS文件上传、下载、查看、删除

    1. 开发前准备 1.1 前置知识 java基础以及SpringBoot简单基础知识即可. 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lom ...

  4. HTTP文件上传服务器-支持超大文件HTTP断点续传的实现办法

    最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传.笔者在以前的博客如何实现支持大文件的高性能HTTP文件上传服务器已经介绍了实现大文件上传的一些基本 ...

  5. SpringBoot - 实现文件上传2(多文件上传、常用上传参数配置)

    在前文中我介绍了 Spring Boot 项目如何实现单文件上传,而多文件上传逻辑和单文件上传基本一致,下面通过样例进行演示. 多文件上传 1,代码编写 1)首先在 static 目录中创建一个 up ...

  6. django设置并获取cookie/session,文件上传,ajax接收文件,post/get请求及跨域请求等的方法

    django设置并获取cookie/session,文件上传,ajax接收文件等的方法: views.py文件: from django.shortcuts import render,HttpRes ...

  7. Spring MVC - MultipartFile实现文件上传(单文件与多文件上传)

    准备工作: 需要先搭建一个spirngmvc的maven项目 1.加入jar包 <dependency> <groupId>commons-fileupload</gro ...

  8. Struts2之文件上传(单文件/多文件)

    <一>简述: Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置,<interceptor name="fileUp ...

  9. sruts2:单个文件上传,多个文件上传(属性驱动)

    文件上传功能在Struts2中得到了很好的封装,主要使用fileUpload上传组件. 1. 单个文件上传 1.1 创建上传单个文件的JSP页面.显示提交结果的JSP页面 uploadTest1.js ...

  10. Servlet实现文件上传,可多文件上传

    一.Servlet实现文件上传,需要添加第三方提供的jar包 接着把这两个jar包放到 lib文件夹下: 二: 文件上传的表单提交方式必须是POST方式, 编码类型:enctype="mul ...

随机推荐

  1. Selenium-Grid工作方式

    http://blog.csdn.net/five3/article/details/9428655 Selenium-Grid工作方式 标签: selenium-grid2webdriversele ...

  2. Freertos之系统配置

    Freertos之系统配置 http://blog.csdn.net/liyuanbhu/article/details/7912170/

  3. java中try 与catch的使用

    (2011-10-08 17:08:43) 转载▼ 标签: 杂谈 分类: Java try{//代码区}catch(Exception e){//异常处理}代码区如果有错误,就会返回所写异常的处理. ...

  4. MAC OS X 10.10 应用程序下载失败后lunchpad产生灰色图标的解决办法

    方法如下:打开应用程序- 实用工具 - 终端. 以此出入如下字符 defaults write com.apple.dock ResetLaunchPad -bool true killall Doc ...

  5. HDU 5631 Rikka with Graph

    如果原图不连通,直接输出0. 如果原图连通,删除X条边之后要保证新图连通,再看数据是n+1条边-->因此,最多只能删去两条边. 因为n=100,可以枚举进行验证,枚举删去每一条边是否连通,枚举删 ...

  6. FragmentTabHost+FrameLayout实现底部菜单栏

    现在一般的app都使用底部菜单栏,那具体怎么实现的呢!我们就来看看 首先给大家展示一下布局文件 1 <LinearLayout xmlns:android="http://schema ...

  7. Linux/hp unix/AIX日常巡检脚本(转)

    以下为Linux/hp unix/AIX日常巡检脚本,大家可以参考着进行改写,用于自己的服务器. #!/usr/bin/ksh syserrdate=`date +"%m/%d"` ...

  8. <iOS>UIImage变为NSData并进行压缩

    http://www.cnblogs.com/robinkey/archive/2013/01/21/2869930.html //sdk中提供了方法可以直接调用 UIImage *img = [UI ...

  9. 用OpenSSL生成自签名证书在IIS上搭建Https站点(用于iOS的https访问)

    前提: 先安装openssl,安装有两种方式,第一种直接下载安装包,装上就可运行:第二种可以自己下载源码,自己编译.这里推荐第一种. 安装包:http://slproweb.com/products/ ...

  10. iOS8 UISearchViewController搜索功能讲解 分类: ios技术 2015-07-14 10:23 76人阅读 评论(0) 收藏

    在iOS8以前我们实现搜索功能需要用到UISearchbar和UISearchDisplayController, 在iOS8之后呢, UISearchController配合UITableView的 ...