我想上傳一個文件到服務器,但有什麼辦法(使用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