猿问

请问如下这种方案是否可行?

当用户通过浏览器上传图片时,不管用户用了多大的图片,都使其能够上传,现在想用JS先在浏览器上对图片进行压缩处理,然后上传,而不是将整个图片上传到后台服务器然后在压缩后存储。新浪微博在上传图片的时候是怎样一种解决方案?请各路大牛不吝赐教!谢谢。

幕布斯6054654
浏览 85回答 2
2回答

红颜莎娜

<script&nbsp;language="JavaScript"&nbsp;type="text/javascript">&nbsp; function&nbsp;DrawImage(ImgD,FitWidth,FitHeight)&nbsp; {&nbsp; var&nbsp;image=new&nbsp;Image();&nbsp; image.src=ImgD.src;&nbsp; if(image.width>0&nbsp;&&&nbsp;image.height>0)&nbsp; {&nbsp; if(image.width>FitWidth)&nbsp; {&nbsp; ImgD.width=FitWidth;&nbsp; ImgD.height=(image.height*FitWidth)/image.width;&nbsp; if(ImgD.height>FitHeight) { ImgD.height=FitHeight;&nbsp; ImgD.width=(image.width*FitHeight)/image.height;&nbsp; } }&nbsp; else&nbsp;if(image.height>FitHeight)&nbsp; {&nbsp; ImgD.height=FitHeight;&nbsp; ImgD.width=(image.width*FitHeight)/image.height;&nbsp; if(image.width>FitWidth) { ImgD.width=FitWidth;&nbsp; ImgD.height=(image.height*FitWidth)/image.width;&nbsp; } } else {&nbsp; ImgD.width=image.width;&nbsp; ImgD.height=image.height;&nbsp; }&nbsp; }&nbsp; }&nbsp; </script>最近做一个页面时用到的,不知道符不符合你的需求!

慕无忌1623718

如果要所有运算都在客户端通过js完成,目前只有html5的canvas和file api才能满足你的需要。但是对国内用户来说,支持html5的浏览器普及率还不够高。新浪微博的图片上传使用的是图片上传后然后,再在服务器端压缩的方法,实际上这种方式的消耗也很少。目前普遍上使用的都是这种方式,因为只需要在上传的时候压缩一次。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答