博客发表代码测试

 1 import java.io.File;
 2 import java.io.FileOutputStream;
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.util.List;
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 import org.apache.commons.fileupload.FileItem;
11 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
12 import org.apache.commons.fileupload.servlet.ServletFileUpload;
13
14 public class UploadHandleServlet extends HttpServlet {
15
16     public void doGet(HttpServletRequest request, HttpServletResponse response)
17             throws ServletException, IOException {
18                 //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
19                 String savePath = this.getServletContext().getRealPath("/WEB-INF/upload");
20                 File file = new File(savePath);
21                 //判断上传文件的保存目录是否存在
22                 if (!file.exists() && !file.isDirectory()) {
23                     System.out.println(savePath+"目录不存在,需要创建");
24                     //创建目录
25                     file.mkdir();
26                 }
27                 //消息提示
28                 String message = "";
29                 try{
30                     //使用Apache文件上传组件处理文件上传步骤:
31                     //1、创建一个DiskFileItemFactory工厂
32                     DiskFileItemFactory factory = new DiskFileItemFactory();
33                     //2、创建一个文件上传解析器
34                     ServletFileUpload upload = new ServletFileUpload(factory);
35                      //解决上传文件名的中文乱码
36                     upload.setHeaderEncoding("UTF-8");
37                     //3、判断提交上来的数据是否是上传表单的数据
38                     if(!ServletFileUpload.isMultipartContent(request)){
39                         //按照传统方式获取数据
40                         return;
41                     }
42                     //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
43                     List<FileItem> list = upload.parseRequest(request);
44                     for(FileItem item : list){
45                         //如果fileitem中封装的是普通输入项的数据
46                         if(item.isFormField()){
47                             String name = item.getFieldName();
48                             //解决普通输入项的数据的中文乱码问题
49                             String value = item.getString("UTF-8");
50                             //value = new String(value.getBytes("iso8859-1"),"UTF-8");
51                             System.out.println(name + "=" + value);
52                         }else{//如果fileitem中封装的是上传文件
53                             //得到上传的文件名称,
54                             String filename = item.getName();
55                             System.out.println(filename);
56                             if(filename==null || filename.trim().equals("")){
57                                 continue;
58                             }
59                             //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:  c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
60                             //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
61                             filename = filename.substring(filename.lastIndexOf("\\")+1);
62                             //获取item中的上传文件的输入流
63                             InputStream in = item.getInputStream();
64                             //创建一个文件输出流
65                             FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
66                             //创建一个缓冲区
67                             byte buffer[] = new byte[1024];
68                             //判断输入流中的数据是否已经读完的标识
69                             int len = 0;
70                             //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
71                             while((len=in.read(buffer))>0){
72                                 //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
73                                 out.write(buffer, 0, len);
74                             }
75                             //关闭输入流
76                             in.close();
77                             //关闭输出流
78                             out.close();
79                             //删除处理文件上传时生成的临时文件
80                             item.delete();
81                             message = "文件上传成功!";
82                         }
83                     }
84                 }catch (Exception e) {
85                     message= "文件上传失败!";
86                     e.printStackTrace();
87
88                 }
89                 request.setAttribute("message",message);
90                 request.getRequestDispatcher("/message.jsp").forward(request, response);
91     }
92
93     public void doPost(HttpServletRequest request, HttpServletResponse response)
94             throws ServletException, IOException {
95
96         doGet(request, response);
97     }
98 }
时间: 2024-11-07 08:35:33

博客发表代码测试的相关文章

使用word发布博客的格式测试

对使用word发布博客园的测试 对使用word发布博客园的测试 对使用word发布博客园的测试 对使用word发布博客园的测试 图片测试: 表格测试: 测试 Test 测试 Test 12 34 34 3434 代码测试 from dataset.mnist import load_mnist import numpy as np import pickle from PIL import Image def img_show(img): pil_img = Image.fromarray(np

从无到有开发自己的Wordpress博客主题---代码环境准备

注意这里说的是代码环境准备哦,而不是L(M)AMP运行环境哦,运行环境会在后述文章中在写. 一.在本地初始化git环境并且链接上gitee 1.在gitee上创建一个项目托管你的代码 这个不在赘述,按照提示一步一步操作就好了,个人用户用gitee的好处是,相比于GitHub速度快,而且可以创建免费的私人库. 2.创建公钥以连接gitee 虽然主流git仓库都支持http的方式,但是每次都要输入密码,麻烦. 创建方式参考:https://gitee.com/help/articles/4181 3

博客模板开发测试随笔

博客模板开发测试随笔博客模板开发测试随笔

博客模板开发测试随笔2

博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔

博客模板开发测试随笔5

博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔

博客园 markdown测试

##1.是否能用markdown呢 这是个问题 似乎不可以的 ======================= 这是怎么回事呢 来自为知笔记(Wiz) 博客园 markdown测试

博客模板开发测试随笔4

博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔

博客模板开发测试随笔3

博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔

博客园代码定制

博客园代码定制 版本:2019-08-08 本文基于Simple Memory模板,且已获取CSS和JS权限,此版本并非最终版本. 如有错误请指出,代码开源可以修改完善,仅用于学习交流,转载时请注明出处! 本文记录了对博客园主页优化的尝试过程以及相关的CSS源码. 在此之前默认已在“管理-选项”部分设定好了每页显示的内容,在“管理-设置”部分进行下列设置. Part 1  定制CSS代码(body部分) 首先应该解决网页端缩放和手机端图片显示不全的问题,这里采用手机端“强制使用网页端”的模式来修