文件的上传对表单的要求

<!-- 
上传文件:表单要求
1,enctype="multipart/form-data"
2.表单中需要有type="file"的input
3.表单的请求方式一定是POST。即method="post"
servlet要求
1.不能使用request.getParameter
2.使用request.getInputStream

 -->
<form action="/file_upload/RegistServlet" method="post" enctype="multipart/form-data">
    用户:<input name="username" type="text"><br>
    注册:<input name="password" type="password"><br>
    照片:<input name="pic" type="file" ><br>
    <input type="submit" value="提交">
</form>
        //获得复杂类型表单的输入流
        InputStream in = request.getInputStream();
        //获得输入流的内容
        String result = IOUtils.toString(in);

fileUpload的简单应用

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //创建接受文件的工厂类
        DiskFileItemFactory factory = new DiskFileItemFactory();
        //创建文件解析对象
        ServletFileUpload sfu = new ServletFileUpload(factory);
        
        try {
            //解析request,获得表单中的每一文件(包含普通文本域)项
            List<FileItem> list = sfu.parseRequest(request);
            //遍历每一个文本项
            for(FileItem fi : list){
                //获得原始文件名
                String origFileName = fi.getName();
                //获得文本域项的内容
                String content = fi.getString();
                //获得文本域的名字
                String fieldName = fi.getFieldName();
                //文本域的内容的类型
                String ContentType = fi.getContentType();
                //获得文件的大小(以字节为单位)
                long size = fi.getSize();
                //是否是普通文本(普通文本就是非长传文件形式的文本)true代表普通字段,false是文件字段
                boolean isFieldForm = fi.isFormField();
                System.out.println("原始文件名:"+origFileName);
                System.out.println("文本项的内容:"+content);
                System.out.println("文本域的名字:"+fieldName);
                System.out.println("文本域的内容类型:"+ContentType);
                System.out.println("文件大小:"+size);
                System.out.println("是否是普通字段:"+isFieldForm);
                System.out.println("-----------------------------------");
            }
        } catch (FileUploadException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

猜你喜欢

转载自www.cnblogs.com/Mr-Dxin/p/10034435.html