A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/**
* DiskFileItemFactory构造的两个参数
*         第一个参数:sizeThreadHold - 设置缓存(内存)保存多少字节数据,默认为10K
*                            如果一个文件没有大于10K,则直接使用内存直接保存成文件就可以了。
*                          如果一个文件大于10K,就需要将文件先保存到临时目录中去。
* 第二个参数 File 是指临时目录位置
*
*/
public class Up2Servlet extends HttpServlet {
        public void doPost(HttpServletRequest req, HttpServletResponse resp)
                        throws ServletException, IOException {
                req.setCharacterEncoding("UTf-8");
                //获取项目的路径
                String path = getServletContext().getRealPath("/up");
                //第一步声明diskfileitemfactory工厂类,用于在指的磁盘上设置一个临时目录
                DiskFileItemFactory disk =
                                new DiskFileItemFactory(1024*10,new File("d:/a"));
                //第二步:声明ServletFileUpoload,接收上面的临时目录
                ServletFileUpload up = new ServletFileUpload(disk);
                //第三步:解析request
                try {
                        List<FileItem> list =  up.parseRequest(req);
                        //如果就一个文件
                        FileItem file = list.get(0);
                        //获取文件名,带路径
                        String fileName = file.getName();
                        fileName = fileName.substring(fileName.lastIndexOf("\\")+1);
                        //获取文件的类型
                        String fileType = file.getContentType();
                        //获取文件的字节码
                        InputStream in = file.getInputStream();
                        //声明输出字节流
                        OutputStream out = new FileOutputStream(path+"/"+fileName);
                        //文件copy
                        byte[] b = new byte[1024];
                        int len = 0;
                        while((len=in.read(b))!=-1){
                                out.write(b,0,len);
                        }
                        out.close();
                       
                        long size = file.getInputStream().available();
                       
                        //删除上传的临时文件
                        file.delete();
                        //显示数据
                        resp.setContentType("text/html;charset=UTf-8");
                        PrintWriter op = resp.getWriter();
                        op.print("文件上传成功<br/>文件名:"+fileName);
                        op.print("<br/>文件类型:"+fileType);
                        op.print("<br/>文件大小(bytes)"+size);
                       
                       
                       
                } catch (Exception e) {
                        e.printStackTrace();
                }
               
        }

}
//上传文件所使用的jar包

jar.jpg (49.7 KB, 下载次数: 10)

jar.jpg

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马