java文件上传

技术·学习 · 2016-12-08 · 82 人浏览

最近一直忙着赶项目,许久不来更新了,正好记录下最新项目中所用到的一些技术。这几天一直在做上传下载,虽然网上相关的内容很多,但是只有自己做的时候才能真正的解决问题。
首先是上传,java文件上传会调用这个注解:

@RequestParam("file") MultipartFile file
@RequestMapping("/common/pcuploadsave")
@ResponseBody
public String SaveFile(HttpServletRequest request,HttpServletResponse response,
    @RequestParam("file") MultipartFile file,@RequestParam("funcid") String funcid,
    Map<String, Object> parameter){
    JSONObject info= new JSONObject();
    String res="";
    if(file.getSize()<=0){
    res="请上传文件";
    info.put("msg", res);
    }else{
    String fileName = file.getOriginalFilename();
    UploadFile files=new UploadFile(fileName, file);
    try {
        String id=processAttach(files, parameter);
        res="ok";
        sss.put("id", id);
        } catch (Exception e) {
            e.printStackTrace();
        }
    info.put("msg", res);
    }
    return info.toString();
}
 


 @FileResolver
public String processAttach(UploadFile file, Map<String, Object> parameter)
        throws Exception {
    String unitid = (String) parameter.get("unitid");
    String path = funcid + "/";//上传文件目录
    File f = new File(path);
    if (!f.exists()) {//如果目录不存在就创建
        f.mkdir();
    }
    String filename = file.getFileName();
    String savename = getSuffix(filename);
    float filesize = (float) (file.getSize() / 1024.0f / 1024.0f);
            // 构造方法的字符格式这里如果小数不足2位,会以0补足.
    DecimalFormat decimalFormat = new DecimalFormat("#0.00");
    String p = decimalFormat.format(filesize);// format 返回的是字符串
    String uploadFolder = path + savename;
    // 将附件移至相关目录
    file.transferTo(new File(uploadFolder));
    StringBuffer sql = new StringBuffer();
    ...这里就是向数据库插数据进去
    jdbc.execute(sql.toString());
    return id;
    
}

前台用ajax取值,

说明文件上传ok了。

java 附件上传
Theme Jasmine by Kent Liao