zoukankan      html  css  js  c++  java
  • 明日计划:团队开发Fooks第七天

    一、明日计划

    将项目与团队进行整合,进行完整的数据库设计

    二、今日成果

    上面是成功通过App上传到云服务器的文件

    部分代码

    package Servlet;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    import java.util.UUID;
    
    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;
    import org.apache.commons.io.IOUtils;
    
    public class DServlet extends HttpServlet {
    
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
             boolean isMultipart = ServletFileUpload.isMultipartContent(request);
                if (isMultipart) {// 判断提交上来的数据是否是表单的数据
                    
                    //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
                    String savePath = this.getServletContext().getRealPath("/Book");
                    File file = new File(savePath);
                    //判断上传文件的保存目录是否存在
                    if (!file.exists() && !file.isDirectory()) {
                        System.out.println(savePath+"目录不存在,需要创建");
                        //创建目录
                        file.mkdir();
                    }
    
                    DiskFileItemFactory factory = new DiskFileItemFactory();// 1、创建一个DiskFileItemFactory工厂
                    ServletFileUpload upload = new ServletFileUpload(factory);// 2、创建一个文件上传解析器
                    upload.setHeaderEncoding("utf-8");//编码方式
    
                    try {
                        // 4、使用ServletFileUpload解析器解析上传的数据,解析结果是一个List<FileItem>
                        // 集合,每一个FileItem对应一个Form表单的输入项
                        List<FileItem> items = upload.parseRequest(request);
    
                        for (FileItem item : items) {
                            if (item.isFormField()) {//如果是文本
                                String name = item.getFieldName();
                                String value = item.getString("utf-8");//以utf-8进行编码
                                System.out.println(name);
                            } else {// 如果是文件
                                String filename = item.getName();
                                 System.out.println("filename=" + filename);
                                if (null == filename || "".equals(filename.trim())) {
                                    continue;
                                }
                                filename = filename.substring(filename
                                        .lastIndexOf("/") + 1);//将文件名剪出
                                InputStream is = item.getInputStream();//得到上传的输入流
                                FileOutputStream out = new FileOutputStream(savePath + "/" 
                                        + filename);//创建写入磁盘的输出流
    
                                byte[] b = new byte[1024 * 1024];//缓冲区
                                int len = 0;
                                while ((len = is.read(b)) != -1) {
                                    out.write(b, 0, len);
                                    out.flush();
                                }
                                is.close();
                                out.close();
                                item.delete();
                                // 处理文件上传时生成的临时文件
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
    
            
            
        }
    
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
    DServlet
  • 相关阅读:
    pytest文档70-Hook钩子函数完整API总结
    pytest文档69-Hook函数之参数化生成测试用例pytest_generate_tests
    pytest文档68-pytest-lazy-fixture 插件解决 pytest.mark.parametrize 中使用 fixture 问题
    pytest文档67-pytest.mark.parametrize 中使用 fixture
    docker学习15-Docker 使用修改后容器来创建镜像
    pytest文档66-工厂化的 fixtures
    pytest文档65-内置 request 读取项目的根目录 rootdir
    jenkins学习16-无法连接仓库:Error performing git command: git ls-remote -h
    多屏切换神器
    邀请推广:Office 365 开发入门指南教程
  • 原文地址:https://www.cnblogs.com/yeyueweiliang/p/12748127.html
Copyright © 2011-2022 走看看