1.上传的使用

1.文件上传的条件
 1)表单的提交方式必须是POST方式。(才有content-type属性)
 2)有文件上传表单,表单中有<input type="file"/>的选择文件的标签
 3)把表单设置为enctype="multipart/form-data",提交的数据不再是key-value对,而是字节数据
# jsp中的代码
 <form action="${pageContext.request.contextPath }/UploadDemo1" method="post" enctype="multipart/form-data">
 请选择文件: <input type="file" name="img"/><br/>
 <input type="submit" value="上传" />
 </form>
2.自动书写文件上传的代码
/**
 * 手动处理上传文件的逻辑
 * @author APPle
 *
 */
public class UploadDemo1 extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //得到实体内容数据
        InputStream in = request.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        //读取文件的开始符
        String startTag = br.readLine();
        
        //读取文件名: Content-Disposition: form-data; name="img"; filename="news.txt" 
        String line = br.readLine();
        String fileName = line.substring(line.lastIndexOf("filename=\"")+10, line.lastIndexOf("\"") );
        System.out.println("文件名:"+fileName);
        
        //跳过2行
        br.readLine();
        br.readLine();
        
        //读取文件的实际内容
        String str = null;
        BufferedWriter bw = new BufferedWriter(new FileWriter("E:/files/"+fileName));
        while((str=br.readLine())!=null){
            //读到文件结束符时退出循环
            if((startTag+"--").equals(str)){
                break;
            }
            
            //把内容写出文件中
            bw.write(str);
            bw.newLine();
            bw.flush();
        }
        //关闭
        bw.close();
        br.close();
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,558评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,992评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,972评论 6 342
  • 引言 在这个教程中,你会看到在Xcode提供的初始化代码模板和数据模型编辑器资源中,用Swift语言写出你的第一个...
    MarkLin阅读 10,220评论 7 32