我有一个基于Web Spring的应用程序,用户可以上传图像,图像大小分别为3或4 MB。有没有办法压缩这些图像,所以我可以像大多数Web应用程序一样将图像减少到大约50或80 KB。我将图像保存在文件系统而非数据库中。这里我的应用程序的重要部分与图像上传有关。
add.jsp:
<div class="col-md-3 ">
<springform:input type="file" path="photos" name="photos" style=" visibility: hidden ; " onchange="imagepreview(this);"/>
<label for="photos" >
<img class="images img-thumbnail" id="imgpreview" src="/imagetemp/?chemintemp=${chemintemp}" onError="this.onerror=null;this.src='/images/noimage.gif';" />
</label>
</div>
query.js:
function imagepreview(input){
if (input.files && input.files[0]){
var filerd =new FileReader();
filerd.onload=function (e){
$("#imgpreview").attr('src',e.target.result);
};
filerd.readAsDataURL(input.files[0]);
}
};
Controler:
@RequestMapping(value="/imagetemp",method = RequestMethod.GET)
public @ResponseBody void affichimagetemp(//@RequestParam("chemintemp") String img,
Model md, HttpSession session,
HttpServletResponse response,
HttpServletRequest request) throws IOException,
NullPointerException
{
String img=(String) session.getAttribute("chemintemp");
if (img!=null){
try {
System.out.println("img /imagetemp :"+img);
File imageFile = new File(img);
response.setContentType("image/jpeg");
InputStream in=new FileInputStream(imageFile);
IOUtils.copy(in, response.getOutputStream());
in.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}