2009-12-07 84 views
3

我想上传一个文件到服务器,但有什么办法(使用JavaScript)在客户端压缩图像上传之前?在客户端压缩文件

+0

你在body中提到javascript但你标记了它c# – 2009-12-07 13:01:56

+1

为什么社区Wiki? – 2009-12-07 13:07:26

+0

更新你的问题,我想给你一些东西:) – 2009-12-07 13:08:44

回答

-1

不,JavaScript无权访问用户在浏览对话框中选择的文件。

你可以使用Flash或Java小应用程序来完成这样的事情,但它可能不值得麻烦。

0

在IE中,你可以实例化ActiveX控件,理论上它可以让你做任何你喜欢的客户端。然而,从安全角度来看,它必须为用户/浏览器敲响警钟。

代码从JavaScript实例化ActiveX控件:

var myObject = new ActiveXObject('MyObject.MyControl'); 
0

没有,根本不可能使用javascript:你将无法从JavaScript访问原始数据。您需要使用浏览器插件,例如Java applet,flash或(因为您正在使用asp.net)Silverlight。

你可以从CodePlex上检查出的现有的开源控制: http://www.codeplex.com/SilverlightFileUpld

0

如果你想要的是压缩数据而不是一个文件,它是可能的:看this SO question。但是,您需要访问JavaScript中的数据。

0

无论如何,图像往往会被压缩,所以试图进行任何进一步的客户端压缩可能会产生很少或没有回报。

希望这会有所帮助。

-1

由于您无法访问上传文件的数据,所以这没有多大意义。您可以使用限制访问文件系统并提供数据压缩(即使速度适当)的FlashPlayer 10。

0

有压缩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源代码中的行是:

​​

祝您好运!

相关问题