zoukankan      html  css  js  c++  java
  • jsp,servlet文件上传问题完善

    1. 上传文件时文件名中文乱码 upload.setHeaderEncoding("utf-8");
    有个疑惑: 不管设置不设置都不乱码,但是刘帅龙老师讲的时候出现了乱码 .

    2. 上传文件的目标文件夹必须指定, 若不指定怎么解决?

    1 File file = new File("E:/img");
    2 
    3 if (!file.exists()) { 
    4   file.mkdirs(); 
    5 }
    6 
    7 item.write(new File(file, item.getName()));

    3. 上传文件至当前服务器目录下. 指定目录为

    1 File file = new File("D:/Develop/tomcat/apache-tomcat-7.0.94/webapps/studentManage/upload");

    4. 若文件名相同则会覆盖原来的, 与实际需求相违 // 随机生成文件名不带拓展名

    1 String uuid = UUID.randomUUID().toString(); // 获取文件拓展名 (带点的)
    2 String ext = item.getName().substring(item.getName().lastIndexOf(".")); //
    3 System.out.println(ext); // .jpg
    4 // 拼接成完整的文件名
    5 String fileName = uuid.concat(ext);


    5. 指定上传文件的大小

    1 // 指定文件大小, 超出范围则向前台发送"文件大小超出范围20K"
    2 if (item.getSize() > 1024 * 20) { // 限定文件大小为20K
    3 req.setAttribute("msg", "文件大小超出范围20K");
    4 req.getRequestDispatcher("/jsp/regist.jsp").forward(req, resp);
    5 
    6 return;
    7 }

    6. 指定上传文件的类型

    1 // 指定文件的类型
    2 if (!(".jpg".equals(ext) || ".png".equals(ext) || ".gif".equals(ext))) {
    3 req.setAttribute("msg", "上传的文件格式不是.jpg或者.png或者.gif");
    4 req.getRequestDispatcher("/jsp/regist.jsp").forward(req, resp);
    5 return;
    6 }

    7.获取普通表单项的值

     1 // 注意: 由于所有的表单项都以二进制的形式存储在了list中, 所以不能采用req.getParameter();
     2 // 的方式获取普通表单项的值
     3 if ("uname".equals(item.getFieldName())) {
     4 uname = item.getString("utf-8");    // 设置utf-8防止中文乱码
     5 }
     6 
     7 if ("age".equals(item.getFieldName())) {
     8 age = Integer.parseInt(item.getString("utf-8"));
     9 }
    10 
    11 if ("score".equals(item.getFieldName())) {
    12 score = Double.parseDouble(item.getString("utf-8"));
    13 }
  • 相关阅读:
    面向对象分析与设计
    数据摘要pandas
    面向对象(简介)
    SQL触发器、事物
    SQL——查询考试
    SQL存储过程、视图
    SQL变量、运算符、分支、循环语句
    SQL连接查询
    SQL主外键和子查询
    SQL各种语句、函数
  • 原文地址:https://www.cnblogs.com/hejjon/p/11014707.html
Copyright © 2011-2022 走看看