解决Jfinal多文件上传重命名的问题

来源:互联网 发布:2017淘宝推广方式 编辑:程序博客网 时间:2024/04/29 13:27

解决Jfinal多文件上传重命名的问题
Jfinal在多文件上传时,如果通过一个文件上传标签上传多个文件,在控制器中用getfiles()得到的文件list,只能返回一个文件,这里采用自己重新编写上传方法

//HttpServletRequest获取http的数据流public boolean fileuploads(HttpServletRequest r){boolean flag=false;MultipartParser mp;try {mp = new MultipartParser(r, 52428800, false, false, "UTF-8");Part part = null;while ((part = mp.readNextPart()) != null) {String name = part.getName();if (part.isFile()) {FilePart filePart = (FilePart) part;String fileName = filePart.getFileName();if(StringUtil.isImage(fileName)){    String newFileName = System.currentTimeMillis() + StringUtil.getSuffixName(fileName);    if(FileUtil.writeFile(filePart.getInputStream(),savepath , newFileName))    {        flag=true;        if(name.equals("bigimg"))        {            bigimgs=bigimgs+newFileName+"|";            f.add(newFileName);        }        else if (name.equals("smallimg")) {            this.smallimg=newFileName;        }    }else {        error= "写入失败!";        return false;    }}else {    error= "您上传图片格式有误,请重新选择!";    return false;}}else if(part.isParam()){ParamPart paramPart=(ParamPart)part;data.put(paramPart.getName(), paramPart.getStringValue("utf-8"));}}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();return false;}return flag;}//把数据流写入磁盘public static boolean writeFile(InputStream inputStream, String savePath,String fileName) {try{savePath=savePath+fileName;System.out.println(savePath);FileOutputStream fw = new FileOutputStream(savePath,true); byte[] b = new byte[1024];while(inputStream.read(b) != -1){fw.write(b);}fw.flush();fw.close();return true;}catch(IOException e){e.printStackTrace();}return false;}
2 0
原创粉丝点击