我想上传一个文件到服务器,但有什么办法(使用JavaScript)在客户端压缩图像上传之前?在客户端压缩文件
在客户端压缩文件
回答
不,JavaScript无权访问用户在浏览对话框中选择的文件。
你可以使用Flash或Java小应用程序来完成这样的事情,但它可能不值得麻烦。
在IE中,你可以实例化ActiveX控件,理论上它可以让你做任何你喜欢的客户端。然而,从安全角度来看,它必须为用户/浏览器敲响警钟。
代码从JavaScript实例化ActiveX控件:
var myObject = new ActiveXObject('MyObject.MyControl');
没有,根本不可能使用javascript:你将无法从JavaScript访问原始数据。您需要使用浏览器插件,例如Java applet,flash或(因为您正在使用asp.net)Silverlight。
你可以从CodePlex上检查出的现有的开源控制: http://www.codeplex.com/SilverlightFileUpld
如果你想要的是压缩数据而不是一个文件,它是可能的:看this SO question。但是,您需要访问JavaScript中的数据。
无论如何,图像往往会被压缩,所以试图进行任何进一步的客户端压缩可能会产生很少或没有回报。
希望这会有所帮助。
由于您无法访问上传文件的数据,所以这没有多大意义。您可以使用限制访问文件系统并提供数据压缩(即使速度适当)的FlashPlayer 10。
有压缩JavaScript中的图像的方式:http://www.bytestrom.eu/blog/2009/1120a_jpeg_encoder_for_javascript
我怀疑这将让你上传的压缩版本的服务器虽然。我很确定你需要使用基于Flash或Java的东西。
Flash能够做JPEG压缩AFAIK。那里也有不少开源的基于Flash的文件上传器。其中一个SWFUpload(http://swfupload.org/)已经支持客户端图像调整大小的最新阿尔法,这可能是你想要的。但是,如果你想要真正的压缩(如JPEG),我相信你可以将SWFUpload扩展到这个。
编辑: 看来SWFUpload确实在最新的Alpha版本中为您做了所有这些。看看这里的演示:http://demo.swfupload.org/v250alpha1/resizedemo/index.php
我看到他们提到,目前文件虽然有限。
你可能会寻找JavaScript源代码中的行是:
祝您好运!
大更新:在html5中,您可以访问之前选定的文件(-list),javascript! 详细信息:http://www.html5rocks.com/en/tutorials/file/dndfiles/
- 1. 客户端文件压缩
- 2. 在客户端获取压缩文件
- 3. 客户端数据压缩/解压缩?
- 4. ServiceStack客户端压缩
- 5. Big JSON文件 - 如何压缩服务器并在客户端解压缩?
- 6. 在CXF客户端启用gzip压缩
- 7. Apache FTP客户端在传输时是否压缩文件?
- 8. 在客户端上传之前进行文件压缩
- 9. 解压文件到内存,调整文件,压缩和流到客户端(Node.js)
- 10. 为IE6客户端禁用GZIP压缩
- 11. 上传前压缩客户端图像
- 12. IBM WebSphere JAX-RPC客户端压缩
- 13. 为客户端部署压缩node_modules
- 14. 使用javascript压缩xhtml客户端?
- 15. Javascript客户端数据压缩
- 16. 压缩文件并从客户端或服务器下载?
- 17. Postgres在服务器端压缩数据并在客户端解压
- 18. 在服务器上压缩波形文件,并在闪存/客户端解压缩
- 19. 使用Java和struts2在客户端下载压缩的CSV文件
- 20. 在服务器端解压缩/解压缩文件 - Worklight
- 21. 在Visual Studio 2010中使用C#webservice客户端进行压缩
- 22. 在客户端浏览器中解压缩内容
- 23. 在yii中压缩/解压缩文件
- 24. 流星:如何获得用于调试客户端的未压缩文件
- 25. 如何压缩本地客户.nexe二进制文件
- 26. 压缩文件
- 27. JAX-WS客户端:UnsupportedMediaException为gzip压缩的响应
- 28. 客户端使用Flash + JavaScript进行压缩
- 29. 使用HTML5和Javascript进行客户端压缩
- 30. 解压缩GZIP http响应(使用jersey客户端api,java)
你在body中提到javascript但你标记了它c# – 2009-12-07 13:01:56
为什么社区Wiki? – 2009-12-07 13:07:26
更新你的问题,我想给你一些东西:) – 2009-12-07 13:08:44