zoukankan      html  css  js  c++  java
  • 简单的上传事例

    第一步:

    完成index.jsp,只需要一个表单。注意表单必须是post的,而且enctype必须是mulitpart/form-data的。

    <form action="${pageContext.request.contextPath }/FileUploadServlet" method="post" enctype="multipart/form-data">
            用户名:<input type="text" name="username"/><br/>
            文件1:<input type="file" name="file1"/><br/>
            <input type="submit" value="提交"/>
        </form>

    第二步:

    完成FileUploadServlet

    public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 因为要使用response打印,所以设置其编码
            response.setContentType("text/html;charset=utf-8");
            
            // 创建工厂
            DiskFileItemFactory dfif = new DiskFileItemFactory();
            // 使用工厂创建解析器对象
            ServletFileUpload fileUpload = new ServletFileUpload(dfif);
            try {
                // 使用解析器对象解析request,得到FileItem列表
                List<FileItem> list = fileUpload.parseRequest(request);
                // 遍历所有表单项
                for(FileItem fileItem : list) {
                    // 如果当前表单项为普通表单项
                    if(fileItem.isFormField()) {
                        // 获取当前表单项的字段名称
                        String fieldName = fileItem.getFieldName();
                        // 如果当前表单项的字段名为username
                        if(fieldName.equals("username")) {
                            // 打印当前表单项的内容,即用户在username表单项中输入的内容
                            response.getWriter().print("用户名:" + fileItem.getString() + "<br/>");
                        }
                    } else {//如果当前表单项不是普通表单项,说明就是文件字段
                        String name = fileItem.getName();//获取上传文件的名称
                        // 如果上传的文件名称为空,即没有指定上传文件
                        if(name == null || name.isEmpty()) {
                            continue;
                        }
                        // 获取真实路径,对应${项目目录}/uploads,当然,这个目录必须存在
                        String savepath = this.getServletContext().getRealPath("/uploads");
                        // 通过uploads目录和文件名称来创建File对象
                        File file = new File(savepath, name);
                        // 把上传文件保存到指定位置
                        fileItem.write(file);
                        // 打印上传文件的名称
                        response.getWriter().print("上传文件名:" + name + "<br/>");
                        // 打印上传文件的大小
                        response.getWriter().print("上传文件大小:" + fileItem.getSize() + "<br/>");
                        // 打印上传文件的类型
                        response.getWriter().print("上传文件类型:" + fileItem.getContentType() + "<br/>");
                    }
                }
            } catch (Exception e) {
                throw new ServletException(e);
            } 
        }
  • 相关阅读:
    .Net 平台下的互联网架构新思考
    图形化机构树静态页面
    互联网应用架构谈
    解决android调用IIS Express中的WCF服务时,出现错误400问题
    远程连接sql server 数据库的方法
    WPF样式——多条件触发器
    Ubuntu 16.04 安装 RabbitMQ
    session共享个人小结
    Nginx负载均衡配置
    MySQL数据库设置主从同步
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/4923938.html
Copyright © 2011-2022 走看看