小残曦

love曦

小残曦

java文件上传

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

首先是上传,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了。

评论回复

  1. 回复 孵化器

    然后我就支持下

  2. 回复 野兔

    😛 6666666 请输入一些汉字,例如你好等

  3. 回复 野兔

    😳 新年快乐

2 + 3 =

回到顶部