A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhl 初级黑马   /  2013-1-3 23:24  /  2934 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

SmartUpload su = new SmartUpload();
   su.initialize(getServletConfig(), request, response);
   su.setAllowedFilesList("jpg,bmp,gif,jpeg,png");
   su.setDeniedFilesList("exe,bat,jsp,htm,html,doc,txt,,");
   su.upload();
   String imgName = "";
   if (su.getFiles().getCount() == 1) {
    // 获取要上传的文件
    File file = su.getFiles().getFile(0);
   
    if("".equals(file.getFileName()))
    {
     request.setAttribute("message_info", "请选择您要上传的头像图片!");
     request.getRequestDispatcher(response.encodeURL("/regist.jsp"))
     .forward(request, response);
     return;
    }
    else
    {
    // 保存文件路径 重命名 根据项目要求指定相应路径
    imgName = Math.round(Math.random() * 10000) + "_"
      + file.getFileName();
    file.saveAs("/upload/" + imgName, SmartUpload.SAVE_VIRTUAL);
    }
   
   }


如上代码,想实现若上传后缀名为JPG,JPg,Jpg,JpG等格式的图片仍能成功上传,不会出现异常,  想写一个方法,返回一个排列组合集,如jpg 返回JPG,JpG,JPg,jPG,jpg,Jpg,jPg,JPG,         求如何写这个方法?

评分

参与人数 1黑马币 +12 收起 理由
崔政 + 12

查看全部评分

5 个回复

倒序浏览
后缀名取出来。转化成小写。再看数组中是否包含,
回复 使用道具 举报
zhan gewei zhi
回复 使用道具 举报
谭威 发表于 2013-1-4 02:51
后缀名取出来。转化成小写。再看数组中是否包含,

楼主这个方法试过了,但是不行 如果在servlet,也就是后台取出来,转化成小写,必须在su.upload()方法之后,也就是我写的if里,此时如果上传后缀名为JPG的图片时,程序走到su.upload()时就报异常,但是在su.upload()方法之前不能获得该图片的名字及后缀名,也就无法转化为小写,,,,纠结
回复 使用道具 举报
zhl 发表于 2013-1-4 21:02
楼主这个方法试过了,但是不行 如果在servlet,也就是后台取出来,转化成小写,必须在su.upload()方法之 ...

在上传之前啊。用 javascript先转化成小写再说。不知道行不行。
回复 使用道具 举报
谭威 发表于 2013-1-5 18:24
在上传之前啊。用 javascript先转化成小写再说。不知道行不行。

嗯,这个可以,暂时只能这样了,但是可以跳过后台进入servlet页面(因为是注册页面),这样一来还是不行,,,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马