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);
            } 
        }
  • 相关阅读:
    列表 查找元素二分查找
    文件的追加
    Syste.IO 类介绍
    Ctack堆栈
    判断文件是否存在(Exists)
    复杂排序
    元素出栈和入站
    HTML文档中meta标签的作用 Generator KEYWords DEscription Author httpequiv属性
    Page.ClientScript.RegisterClientScriptBlock 失效
    用户名只能由字母或者数字组成(用户控件与HTML控件)
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/4923938.html
Copyright © 2011-2022 走看看