首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在服务器上上传和保存不同分辨率的图像

在服务器上上传和保存不同分辨率的图像
EN

Stack Overflow用户
提问于 2013-05-11 19:10:46
回答 1查看 344关注 0票数 0

我正在开发一个使用Java和Spring MVC的网站。有一个表单,允许输入一些详细信息并附加图像。当用户提交表单(单击提交按钮)时,数据和图像都会上载到服务器。上传的图像在三个不同的地方以三种不同的大小显示给用户。

我目前正在做的是将图像调整为三种不同的分辨率并保存。但这会使上传速度变慢,因为调整大小会增加处理时间。

提高速度的一种方法是运行两个并行线程来进行转换和保存。

有没有其他更好的方法?

EN

回答 1

Stack Overflow用户

发布于 2013-05-11 20:28:24

我可以想到三种方法来做到这一点:

  1. 同步,单线程。

这是您当前的解决方案。调整图像大小是在处理上传请求的同一线程中按顺序(逐个)执行的,因此增加了总的请求处理时间(如您所注意到的,使整个过程明显变慢)。可以说,它是实现起来最不复杂的。只有在处理完所有图像之后,控制权才会返回给用户(这是并行处理的“同步”part).

  • Synchronous,。

调整图像大小可能会从并行化中受益,因此您可以使用CompletionService提交所有调整大小的任务,并将它们设置为并发处理,然后等待所有任务完成(即)。然后再发回响应。用户仍需等待,直到所有图像均为ready.

  • Asynchronous.

上传处理控制器将调整大小的任务排队到一个服务并立即返回;然后,调整大小的服务将尽其所能尽可能快地处理图像。这种方法的问题是它创建了一个简短的窗口,在这个窗口中,控制权回到用户手中,但缩略图还没有准备好。处理此问题的常用方法(YouTube等)是在实际结果准备好之前显示某种占位符“仍在处理中”。

你是唯一一个可以选择最佳解决方案的人,这取决于你的需求和你的页面的动态程度,例如,它是否可以轮询服务器以检查调整大小的作业是否已经完成(并且可以用实际的调整大小的图像替换占位符)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16496445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档