App前端的上传

来源:互联网 发布:怎么查看路由器端口 编辑:程序博客网 时间:2024/06/05 17:50

MutipartResolver:是springMvc中的类

需要在spring中配置一下

//参数传入

@实现的代码:

/** * 上传图片 * @param urlfile 图片 * @param backUrl 图片上传完成后  需要执行的类的方法 该方法默认参数都是Attachment  返回类型都是Result * @param module 上传文件夹名字 * @param extendFile 上传文件格式后缀 * @return */@Override@Transactionalpublic Result mobileUploadAttachment(MultipartFile urlfile, Object[] backUrl,String module,String[]extendFile,String type) {String fileName = null;Attachment attachment=null;try {if (urlfile.isEmpty()) {return ResultUtils.returnError("上传文件失败");} else {String basePath = SpringMVCUtils.getRequest().getRealPath("/upload/" + module);String path = null;fileName = urlfile.getOriginalFilename();boolean isFile = StringUtils.endsWithAny(StringUtils.lowerCase(fileName),extendFile );String sysFileName = UniqueUtils.getOrder() + "." + StringUtils.substringAfter(fileName, ".");//文件格式if (isFile) {path = basePath + "/" + sysFileName;} else {return ResultUtils.returnError("文件格式不正确,上传文件失败");}urlfile.transferTo(new File(path));//文件大小Double size=DoubleUtils.div(urlfile.getSize(),1024000.0, 2);//单位  Mif(type.equals("0")){//上传图片if(size>2){return ResultUtils.returnError("请上传2M以内的图片");}attachment = new Attachment();attachment.setName(fileName);attachment.setAddress("upload/" + module +"/"+ sysFileName);attachment.setMemory(size);//记录文件大小 (单位  M)//设置图片的尺寸BufferedImage bufferedImage=null;try {bufferedImage = ImageIO.read(new File(path));int width = bufferedImage.getWidth();   int height = bufferedImage.getHeight(); attachment.setSizeInfo(width+","+height);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}   UpLoadUtils.alyUpload(module, sysFileName, path,initParam);//上传} else if(type.equals("1")){//上传视频if(size>20){return ResultUtils.returnError("请上传20M以内的视频");}attachment = new Attachment();attachment.setName(fileName);attachment.setAddress("upload/" + module +"/"+ sysFileName);attachment.setMemory(size);//记录文件大小 (单位  M)UpLoadUtils.alyUpload(module, sysFileName, path,initParam);//上传}//反射  保存实体Object obj=backUrl[0];Class<? extends Object> clazz=obj.getClass();Method method=clazz.getDeclaredMethod(backUrl[1].toString(), attachment.getClass());Object returnObj=method.invoke(obj,attachment);if(returnObj==null){logger.error("上传图片回调方法返回数据为空");return ResultUtils.returnError("上传失败");}return (Result) returnObj;}} catch (Exception e) {e.printStackTrace();TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//回滚数据logger.error("图片上传发生异常:"+e.getMessage());return ResultUtils.returnError("上传失败");}}


原创粉丝点击