• servlet请求消息体、文件的上传


    请求消息体

    请求的消息体可以是文本,也可以是二进制

    普通文本消息体

        String value = req.getParameter("参数名");
        //参数名包含:
            //超链接对应的是?号好后面的参数名
            //对于表单的话,参数为 表单控件中 name的值
        //getParameter("参数名");函数可以处理超链接、表单输入框、单选框、单选下拉菜单、文本域
    
        String[] values = req.getParameterValues("name值");
        //getParameterValues("name值");函数处理表单中的复选框、多选下拉菜单

    二进制消息体

        //获得文件对象的part
            Part part = request.getPart("photo");
        //获得该文件对象的文件名
            String fileName = part.getSubmittedFileName();
    
        //getParameter 当进行二进制传输数据的时候  该方法不能获得输入框中的值。
        //添加了@MultipartConfig注解后 ,使用getParameter方法,文本与二进制没有区别

    上传文件

    文件操作-客户端的设置

    1. 提交方式为post

    2. enctype="multipart/form-date"(enctype规定表单数据在发送到服务器之前应该如何编码)

    文件上传的第一步

    1. 设置form的提交方式为 post 编码方式为 enctype="multipart/form-data"

    2. 书写处理文件上传的servlet. 并且告诉web容器该servlet可以进行文件处理。

    3. 分别获取每个表单元素的值(part)

    //获得文件对象的part
        Part part = request.getPart("photo");
    
    //获得该文件对象的文件名
        String fileName = part.getSubmittedFileName();
    
    //获得文件的后缀名
        String ext =fileName.substring(fileName.lastIndexOf("."));
    
    //获得uuid
        String uuid = UUID.randomUUID().toString();
    
    //获得新的文件名
        String newFileName = uuid+ext;
    
    //获得文件存放的地址
        String path = this.getServletContext().getRealPath("存放上传文件的文件夹");
    
    //创建一个文件对象
        File file = new File(path);
    
    //如果没有该imgs文件夹
        if(!file.exists()){
            file.mkdir();
        }
    
    //获得保存文件的路径
        String save_path =  path+File.separator+newFileName;
        //File.separator -> 系统生成的文件分隔符
    
    //上传文件
        part.write(save_path);

    其他

    1. 凡是从客户端传过来的都是字符串

  • 相关阅读:
    WIn7 磁盘分区工具试用记录
    DirectShow 开发环境搭建(整理)
    WinCE 在连续创建约 1000 个文件后,再创建文件失败。这是为什么???
    在命令行处理 console 应用执行的返回值
    WinCE 的发展史及相关基础知识
    DirectShow Filter 基础与简单的示例程序
    使用 VS2005 编译 directshow sample 时链接错误
    车载系统之 Windows CE 应用软件框架设计
    兰州烧饼
    对决
  • 原文地址:https://www.cnblogs.com/-Archenemy-/p/12709969.html
Copyright © 2020-2023  润新知