简单记录主要是便于自己用,有需要的参考一下...

上传至腾讯云,相关文档参阅官方文档

附件为比较早的版本,自己修改过

1、实体bean --用multipartFile接收

public class UploadForm {

//上传的图片

private MultipartFile PhotoFile;

public MultipartFile getPhotoFile() {

return PhotoFile;

}

public void setPhotoFile(MultipartFile photoFile) {

PhotoFile = photoFile;

}

}

2、controller

@RequestMapping(value="/uploadImage")

@ResponseBody

public String uploadImage(UploadForm uploadForm,Model model ){

return uploadService.uploadImage(uploadForm,model);

}

3、service

@Transactional

public String uploadImage(UploadForm uploadForm,Model model ){

//图片类型

String imageType = siteForm.getImageType();

MultipartFile uploadFile = siteForm.getPhotoFile();

UploadResult result = PicUploadUtil.picUploadByFileAstrict(uploadFile, 1920, 572, 0, new String[]{"jpg","jpeg","png"}, false);

if(result.result != 0)

return "2";

//将图片信息保存到数据库

CtAttachment attachmentExample = new CtAttachment();

attachmentExample.setUserId(SecurityUserHelper.getCurrentUser().getPersonId());

attachmentExample.setAttCode(imageType);

attachmentExample.setAttName(uploadFile.getOriginalFilename());

attachmentExample.setAttUrl(result.download_url);

this.ctAttachmentDAO.insertNotNull(attachmentExample);

return result.download_url;

}

4、PicUploadUtil

/**

* 图片上传

* @param file

* @param width 宽度限制 <=0表示不校验

* @param height 高度限制 <=0表示不校验

* @param size 大小限制 <=0表示不校验

* @param suffix 后缀限制 null或length<0表示不校验

* @param needCompress 是否需要压缩

* @return

*/

public static UploadResult picUploadByFileAstrict(MultipartFile file,int width,int height,long size,String [] suffix,boolean needCompress) {

UploadResult result = new UploadResult();

try {

String imgName = file.getOriginalFilename();

String imgSuffix = imgName.substring(imgName.lastIndexOf(".") + 1);

//不用添加后缀

String imgNameTemp = UUID.randomUUID().toString();

File fileTemp = new File(picTempDir + imgNameTemp);

//这里只使用路径,而不创建真实文件,所有也不用考虑删除文件的问题

if(fileTemp.exists()){

log.error("target file is exists , create fail !");

result.result = -1;

return result;

}

byte[] advImageBytes = null;

InputStream advImageStream = null;

advImageStream = file.getInputStream();

advImageBytes = FileCopyUtils.copyToByteArray(advImageStream);

FileCopyUtils.copy(advImageBytes, fileTemp);

advImageStream.close();

BufferedImage buff = ImageIO.read(fileTemp);

if((width > 0 ? buff.getWidth() > width : false) || (height > 0 ? buff.getHeight() > height : false) ||

(size > 0 ?file.getSize() > size : false) || ((null != suffix&&suffix.length>0)?!ArrayUtils.contains(suffix, imgSuffix):false)){

//TODO 如果需要压缩,则直接压缩到指定大小,不用校验

/*//返回之前先删除添加的文件,

fileTemp.delete();*/

result.result = 1;

return result;

}

PicCloud pc = new PicCloud(APP_ID, SECRET_ID, SECRET_KEY);

int ret = pc.UploadByFile("", fileTemp, result);

if(ret == 0){

result.result = 0;

}else{

result.result = -1;

}

return result;

} catch (Exception e) {

log.error(e);

}

return null;

}

5、jsp页面

<div id="updateBox" style="display:none;">

<input style="border:0;width:190px;" type="file" id="PhotoFile" name="PhotoFile"/>

<button class="leeer" type="button" οnclick="addPhoto(<c:out value='${model.id }'/>);">上传图片</button>

<!--<button class="leeer" οnclick="updateImg(1);return false;">关闭</button>

--></div>

6、spring-mvc 配置

<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<!-- 指定所上传文件的总大小不能超过200KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->

<property name="maxUploadSize" value="10000000"/>

</bean>

<!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException -->

<!-- 该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 -->

<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">

<property name="exceptionMappings">

<props>

<!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到error_fileupload.jsp页面 -->

<prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop>

</props>

</property>

</bean>

spring mvc 附件上传至腾讯云qcloud相关推荐

  1. spring mvc文件上传小例子

    spring mvc文件上传小例子 1.jsp页面 <%@page contentType="text/html;charset=UTF-8"%> <%@page ...

  2. Spring MVC实现上传文件报错解决方案

    Spring MVC实现上传文件报错解决方案 参考文章: (1)Spring MVC实现上传文件报错解决方案 (2)https://www.cnblogs.com/liuling/p/2014-3-5 ...

  3. spring mvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方 1.form的enctype="multipart/form-data" 这个是上传文件必须的 2.appl ...

  4. Spring MVC文件上传示例教程 - 单个和多个文件

    Spring MVC文件上传示例教程 - 单个和多个文件 文件上传是任何Web应用程序中非常常见的任务.我们之前已经看过如何在Servlet和Struts2文件上传中上传文件.今天我们将学习Sprin ...

  5. Spring MVC 如何上传多个文件到指定位置

    Spring MVC 如何上传多个文件到指定位置 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公 ...

  6. 拉取ftp服务器上的文件_winscp和云服务器,2步实现winscp将文件上传到腾讯云Linux云服务器...

    WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议,它的主要功能就是在本地与远程计算机间安全的复制文件.与使用FTP上传代码相比,通过WinSCP可以直接使 ...

  7. 上传excel腾讯云服务器,使用SpringBoot上传文件到腾讯云

    最近在做一个项目,涉及到腾讯云上传文件/图片到服务器,为了图方便并且提升访问速度,想着上传到腾讯云存储桶是一个不错的选择.腾讯云存储桶的创建可见我之前的文章. 当然存储桶里面不仅可以存图片,也可以存储 ...

  8. html5 dzzxjbd cn,UEditor实现单张图片上传至腾讯云(对象存储服务)功能(html5

    UEditor文件上传默认只支持后端语音,因为项目是前后端分离开发,所以需要前端自行实现图片上传. 这里是直接修改的 ueditor/ueditor.all.js文件 ueditor.all.js中找 ...

  9. Java导出Excel文档(poi),并上传到腾讯云对象存储服务器

    需求 后台生成周报月报季报年报Excel,将文件下载链接推送给对应客户 开发思路: 1.根据选定日期生成周报,月报,季报,年报数据 2.将这些数据报告生成Excel表格 3.把生成的文件上传到腾讯云对 ...

最新文章

  1. 简单探讨TypeScript 枚举类型
  2. BZOJ3992:[SDOI2015]序列统计——题解
  3. 基于Mahout的电影推荐系统
  4. redis在linux下安装并測试(在spring下调用)
  5. python响铃符不响_python语法注意事项
  6. 理解一条语句:SELECT difference(sum(value)) FROM mq_enqueue WHERE channel =~ /ActiveMQ_TEST/ AND $tim...
  7. NFS PersistentVolume - 每天5分钟玩转 Docker 容器技术(151)
  8. 函数指针指向类的静态成员函数
  9. cookie 百科_cookie是什么
  10. linux文件存储管理,深入探讨Linux文件系统管理小结
  11. 【BZOJ1834】【codevs1362】网络扩容,最大流+费用流
  12. Visual Studio Code 1.45 发布
  13. fetch与XHR的区别与优势
  14. 捆网包裹行业调研报告 - 市场现状分析与发展前景预测
  15. Lodop打印旋转180度 倒着打
  16. Dijkstra算法,起点到当前点的最短距离及路径 C++实现
  17. 浅谈数学在c语言编程中的,试论C语言程序设计中算法设计的作用
  18. 红米k50 至尊版 解锁bl 获取root教程步骤
  19. SQL查询中笛卡尔积的巧妙使用(文末福利)
  20. 华为海思K3平台总体特性

热门文章

  1. 获取html下拉菜单selected,原生js获取select下拉框的selected的option项
  2. 新唐 Nuvoton NUC029 入门 点亮板载LED
  3. datax 高级_DATAx上海峰会-百格活动
  4. 滴滴 NewSQL 演进之 Fusion 实践
  5. POJ2385 Apple Catching 题解
  6. 计算机英语这门课上后感1000,英语教师听课心得体会作文
  7. java骰子_Java实现的简单掷骰子游戏示例
  8. SIAL跻身世界三大食品展的成功哲学
  9. Android-在线视频播放器实现
  10. 每日算法 - 列出24点游戏的所有解法