<1>获取二进制文件流并输出

     InputStream inputStream = request.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String s;
while ((s = reader.readLine()) != null) {
System.out.println(s);
}

<2>借用服务器提供的架包(commons-fileupload, commons-io)

package servlet_file_upload;

import java.io.File;
import java.io.IOException;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload; @WebServlet("/FileUploadServlet")
public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L; public FileUploadServlet() {
super();
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置跨域访问
response.addHeader("Access-Control-Allow-Origin", "*");
// 设置请求和返回编码为 UTF-8, 如非必要,不要设置,不然会影响文件扩展名的获取
//response.setCharacterEncoding("UTF-8");
  //request.setCharacterEncoding("UTF-8");
// 获取项目根目录绝对路径
String path = getServletContext().getRealPath("");
// 设置存放返回路径的变量
StringBuilder returnPath = new StringBuilder(200); try {
// 实例化本地磁盘工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置文件上传启用的缓存的值,每 2M 写入一次临时文件
factory.setSizeThreshold(2 * 1024 * 1024);
// 设置缓存文件的临时存放目录
factory.setRepository(new File(path + "Upload"));
// 实例化文件上传类
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置全部文件上传的最大值
//upload.setSizeMax(Integer.valueOf(100) * 1024 * 1024);
// 获取前端上传的文件列表
List<FileItem> items = upload.parseRequest(request);
// 循环所有上传的字段或文字
for (FileItem item : items) {
if (item.isFormField()) {
// 获取字段名
String name = item.getFieldName();
// 获取字段值 括号内的参数不可少否则乱码
String value = item.getString("UTF-8");
// 打印不是文件的字段
System.out.println(name + ".." + value);
} else {
// 获取文件名
String name = item.getName();
// 确定文件存放的相对路径
String filePath = "Upload/" + System.currentTimeMillis() + "." + name.split("\\.")[1];
// 将文件写入指定的路径
item.write(new File(path + filePath));
// 删除缓存文件, 如果没有设置, 大部分时候临时文件也会被删除
item.delete();
// 将相对路径赋值给返回值
returnPath.append(filePath);
// 路径之间用逗号隔开
returnPath.append(",");
}
}
response.getWriter().write(returnPath.substring(0, returnPath.length()- 1));
} catch (Exception e) {
response.getWriter().write("上传失败");
}
}
}

注:  前端代码请参考   http://www.cnblogs.com/lovling/p/6685634.html

 

 

 

  

JAVA servlet 上传文件(commons-fileupload, commons-io)的更多相关文章

  1. java servlet上传文件并把文件内容显示在网页中

    servlet3.0(JDK1.6)自带的API即可实现本地文件的上传,Servlet3.0新增了Part接口,HttpServletRequest的getPart()方法取得Part实现对象.下面我 ...

  2. JAVA SERVLET上传文件的样码

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...

  3. Servlet上传文件

    Servlet上传文件 1.准备工作 (1)利用FileUpload组件上传文件,须要到apache上下载commons-fileupload-1.3.1.jar 下载地址:http://common ...

  4. 原生Servlet 上传文件

    依赖jar <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons ...

  5. 使用Servlet上传文件

    使用浏览器向服务器上传文件其本质是打开了一个长连接并通过TCP方式传输数据.而需要的动作是客户端在表单中使用file域,并指定该file域的name值,然后在form中设定enctype的值为mult ...

  6. Java ftp上传文件方法效率对比

    Java ftp上传文件方法效率对比 一.功能简介: txt文件采用ftp方式从windows传输到Linux系统: 二.ftp实现方法 (1)方法一:采用二进制流传输,设置缓冲区,速度快,50M的t ...

  7. java 后台上传文件

    java 后台上传文件 public static String uploadFile(File file, String RequestURL) throws IOException { Strin ...

  8. Java+Selenium 上传文件,点击选择“浏览文件”按钮,报错invalid argument

    Java+Selenium 上传文件,点击选择"浏览文件"按钮,报错invalid argument 解决代码: Actions action=new Actions(driver ...

  9. servlet上传文件报错(三)

    1.具体报错如下 null null Exception in thread "http-apr-8686-exec-5" java.lang.OutOfMemoryError: ...

随机推荐

  1. web 常用网址及资源

    一.web教程 w3school在线教程 菜鸟教程 二.学习路线 2017前端学习路线图,内附完整前端自学视频教程+工具经验-黑马程序员技术交流社区 三.工具 盘搜 百度地图 查物流 金山词霸 必应词 ...

  2. Win8被禁购信息战由暗到明

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jhzyz/article/details/26629277 冯强/文 关于中国政府禁止採购微软Win ...

  3. js 坐标兼容性

    不同浏览器对坐标属性的支持:

  4. TP5 首页导航一级和二级分类

    <ul id="jsddm"> <li><a class="navi_home" href="{:url('/index ...

  5. Spring MVC 3.0 深入及对注解的详细讲解[转载]

    http://blog.csdn.net/jzhf2012/article/details/8463783 核心原理 1.       用户发送请求给服务器.url:user.do 2.       ...

  6. ASP.NET 实现验证码以及刷新验证码

    实现代码 /// <summary> /// 生成验证码图片,保存session名称VerificationCode /// </summary> public static ...

  7. [OI向?] ubuntu下一些常用的技巧

    想起来什么就写什么吧. Ubuntu下的对拍程序 python是最为简便的. from os import system while True: system("./make > in ...

  8. Python 天气预报+微信

    """ Description: 需要提供以下三个信息,在申请到的微信企业号当中可以找到 agentid corpid corpsecret Author:Nod Dat ...

  9. 用cmd导入oracle的.dmp文件和修改oracle管理员密码

    1,首先创建用户 语法[创建用户]: create user 用户名 identified by 口令[即密码]: 例子:create user zhengxin identified by zhen ...

  10. 给iOS开发新手送点福利,简述UIScrollView的属性和用法

    UIScrollView 1.   contentOffset 默认CGPointZero,用来设置scrollView的滚动偏移量. // 设置scrollView的滚动偏移量 scrollView ...