为什么80%的码农都做不了架构师?>>>   

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>2.2</version>

<configuration>

<compilerArguments>

<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>

</compilerArguments>

</configuration>

</plugin>

var files = $('#userImageUpload')[0].files;

files[0]

* Upload from request stream

*

*/

public static List<String> uploadS3File(Request req) throws Exception {

List<String> fileUrls = new ArrayList<String>();

setFileStoreAttr(req);

try {

Collection<Part> parts = getValidParts(req);

if (parts.size() > 0) {

for (Part part : parts) {

String path = storeFolderName + '/' + UUID.randomUUID();

ObjectMetadata meta = new ObjectMetadata();

meta.setContentType(part.getContentType());

InputStream in = part.getInputStream();

PutObjectRequest request;

if (part.getContentType().contentEquals("image")) {

request = new PutObjectRequest(s3BucketName,

path,

in,

meta);

} else {

request = new PutObjectRequest(s3BucketName,

path,

compressImageByWeithAndHeight(in, 0.5f,200,200),

meta);

}

request.withCannedAcl(CannedAccessControlList.PublicRead);

s3.putObject(request);

fileUrls.add(Helper.getS3FilePath(path));

}

}

} catch (Exception e) {

e.printStackTrace();

}

return fileUrls;

}

/**

* helper for file/image upload

*

* @param req

* @return

*/

private static Collection<Part> getValidParts(Request req) {

Collection<Part> parts = new ArrayList<Part>();

try {

for (Part part : req.raw().getParts()) {

ApplicationPart appPart = (ApplicationPart) part;

String fileName = appPart.getSubmittedFileName();

if (fileName != null && !fileName.isEmpty()) {

parts.add(part);

}

}

} catch (Exception e) {

e.printStackTrace();

}

return parts;

}

/**

* compress image by width , height , quantity

*

* @param input

* @param quantity

* @param width

* @param height

* @return

*/

private static InputStream compressImageByWeithAndHeight(InputStream input, float quantity,int width,int height) {

quantity = quantity == 0f ? 0.5f : quantity;

try {

ImageInputStream imageInput = ImageIO.createImageInputStream(input);

Image image = ImageIO.read(imageInput);

/** 宽,高设定 */

BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

tag.getGraphics().drawImage(image, 0, 0, width, height, null);

ByteArrayOutputStream out = new ByteArrayOutputStream();

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);

/** 压缩质量 */

jep.setQuality(quantity, true);

encoder.encode(tag, jep);

ByteArrayInputStream result = new ByteArrayInputStream(out.toByteArray());

out.close();

return result;

} catch (Exception e) {

e.printStackTrace();

}

return input;

}

}

/**

* Get file access url

*

* @param key

* @return

*/

public static String getS3FilePath(String key) {

return s3Domain + '/' + key;

}

转载于:https://my.oschina.net/hycky/blog/1539284

文件上传(input为file类型)相关推荐

  1. 电脑无法上传html文件类型,HTML5 - 限制文件上传(HTML5 - Restrict file upload)

    HTML5 - 限制文件上传(HTML5 - Restrict file upload) 上面的代码也允许上传.txt或任何类型的文件. 如何限制 html5中的其他文件类型 ? Above code ...

  2. php文件上传css,CSS_文件上传input file简便美化方案(css),文件上传input在各个浏览器里 - phpStudy...

    文件上传input file简便美化方案(css) 文件上传input在各个浏览器里表现形式都不一样: ie6 ie7,8,9 ff chrome 这里介绍一种简单实用的,在各种浏览器下表现一致的美化 ...

  3. html 美化input file,文件上传input file简便美化方案(css)

    file,css 文件上传input在各个浏览器里表现形式都不一样: ie6 ie7,8,9 ff chrome 这里介绍一种简单实用的,在各种浏览器下表现一致的美化方法,效果如下: ie6无法美化, ...

  4. 文件上传input简便美化方案

    文件上传input在各个浏览器里表现形式都不一样: ie6 ie7,8,9 ff chrome 这里介绍一种简单实用的,在各种浏览器下表现一致的美化方法,效果如下: ie6无法美化,只能应用部分效果, ...

  5. Android WebView 支持H5图片上传input type=file

    2019独角兽企业重金招聘Python工程师标准>>> Android WebView 缓存处理 Android WebView 支持H5图片上传<input type=&qu ...

  6. 文件上传至将File转换成MultiPartFile

    在文件上传业务上需要将文件上传至将File转换成MultiPartFile的时候,我搜索得到采用MockMultipartFile这个类可以轻松的转换. 但是,当我准备使用的时候,坑出现了.它是spr ...

  7. Laravel 文件上传提示 “The file deos not exits ” ,但确实已经上传了文件

    Laravel 文件上传提示 "The file "" deos not exits " ,但确实已经上传了文件 首先使用代码抛出异常 if($file-> ...

  8. ORM中的事务和锁、Ajax异步请求和局部刷新、Ajax文件上传、日期时间类型的Json、多表查询图书系统

    一.ORM中的事务和锁 事务 事务要确保原子性 """ 事务ACID原子性:不可分隔的最小单位一致性:跟原子性是相辅相成隔离性:事务之间相互不干扰持久性:事务一旦确认永久 ...

  9. 自学Python第二十二天- Django框架(三) AJAX、文件上传、POST 请求类型之间的转换、多APP开发、iframe、验证码、分页器、类视图、中间件、信号、日志、缓存、celery异步

    Django官方文档 django 使用 AJAX django 项目中也可以使用 ajax 技术 前端 前端和其他 web 框架一样,需要注意的是,django 接收 POST 请求时,需要 csr ...

  10. jmeter文件上传压测file upload-数据为空-Connection terminated parsing multipart data

    参考https://blog.csdn.net/u010390063/article/details/78329373 https://www.cnblogs.com/zichuan/p/101203 ...

最新文章

  1. kvm虚拟机vnc配置
  2. [原创]用递归写的一个object 转换成JSON的函数
  3. 第二、三章:信息系统项目管理基础与立项管理-章节真题
  4. iOS 快速实现分页界面的搭建
  5. 【渝粤教育】国家开放大学2018年秋季 1126t社会医学 参考试题
  6. 转:C++ map的基本操作和使用
  7. IOC容器-Autofac在MVC中实现json方式注入使用
  8. 【J2EE】在项目中理解J2EE规范
  9. Oracle密码过期问题,设置永不过期
  10. 线性代数 (二): 证明 A^T 乘以 A 为半正定矩阵
  11. Nginx服务器日常发包命令
  12. 求伴随矩阵和逆矩阵C++
  13. Docker 如何安全地进入到容器内部
  14. 【Unity3D实战】摇摆直升机开发实战(一)
  15. HDOJ/HDU 2551 竹青遍野(打表~)
  16. [案例4-4]学生和老师
  17. 编写Java程序,使用面向接口编程模拟不同动物的吼叫声
  18. OpenCV + CPP 系列(卅三)图像特征提取(Harris角点检测、Shi-Tomasi角点检测、自定义角点检测)
  19. 街景房屋号码 (SVHN) 数据集
  20. 网络安全级别划分为几个等级?网络安全入门

热门文章

  1. excel两个表格数据对比_Excel表格怎么防止看错数据?阅读模式了解一下
  2. html5场景编辑工具,3款容易上手的HTML5编辑工具推荐~
  3. 深度学习:神经网络基础知识总结
  4. 2022版全球及中国单晶硅市场规模分析与竞争策略研究报告
  5. 中国垃圾发电设备市场竞争模式与十四五运营前景研究报告2022版
  6. 地理标志农产品数据发布 特色产业对话农民丰收节交易会
  7. [Codeforces757G]Can Bash Save the Day?——动态点分治(可持久化点分树)
  8. python-全栈开发-前方高能-内置函数
  9. sharepoint 场帐号修改密码
  10. SLB vs CLB