这个先进些,简单些,但书上提供的例子不能使用,到处弄了弄才行。

servlet代码:

package cc.openhome;

import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

/**
 * Servlet implementation class UploadServlet
 */

@WebServlet("/upload.do")
@MultipartConfig
public class UploadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public UploadServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //request.setCharacterEncoding("UTF-8");
        Part part = request.getPart("photo");
        //String uploadPath = request.getServletContext().getRealPath("/upload");
        String fileName = getFileName(part);
        System.out.println(fileName + "*****************");
        writeTo(fileName, part);
    }

    private String getFileName(Part part) {
        String header = part.getHeader("Content-Disposition");
        String fileName = header.substring(header.indexOf("filename=\"") + 10,
                header.lastIndexOf("\""));
        return fileName;
    }

    private void writeTo(String fileName, Part part) throws FileNotFoundException, IOException {
        String uploadPath = "c:/workspace";
        part.write(uploadPath + File.separator + fileName);
        /***
        InputStream in = part.getInputStream();
        OutputStream out = new FileOutputStream("c:/workspace" + fileName);
        byte[] buffer = new byte[1024];
        int length = -1;
        while ((length = in.read(buffer)) != -1) {
            out.write(buffer, 0, length);
        }
        in.close();
        out.close();
        ***/
    }
}

最新文章

  1. JAVA 中文转GBK内码方法
  2. Node.js与Sails~自定义响应体responses
  3. C/C++多种方法获取文件大小(转)
  4. python中lambda函数
  5. 观察者(observer)设计模式
  6. Android Studio 项目目录结构 英文版
  7. 用shell脚本爬取网页信息
  8. Python学习笔记第一天
  9. Net分布式系统之五:微服务架构
  10. 图像处理------颜色梯度变化 (Color Gradient)
  11. neutron之neutron_openvswitch_agent占用100%CPU资源问题
  12. mysql如何修改开启允许远程连接 (windows)
  13. k8s监控api调用
  14. 编写脚本-SQL SERVER 用户权限分配
  15. canvas-圆弧形可拖动进度条
  16. 在 Vim 中使用 pydiction 对 Python 进行代码补全
  17. 利用Angular.js从PHP读取后台数据
  18. 关于C#我今天的六个小时
  19. Linux系统——NFS网络文件系统
  20. iOS #import和@class 区别

热门文章

  1. ORA-00907: 缺失右括号问题或com.alibaba.druid.sql.parser.ParserException: TODO :IDENTIFIER的原因
  2. P1272 重建道路(树形dp)
  3. [Swift通天遁地]九、拔剑吧-(10)快速创建美观的聊天界面:可发送文字、表情、图片
  4. ACM_Mystery
  5. Laravel 5.4.36 session 生效问题
  6. java heap 异常
  7. fcc 响应式框架Bootstrap 练习3
  8. css每次的初始化代码
  9. Android生命周期回顾
  10. Android开发笔记(9)——初步设置Menu