我想創建一個圖像上傳小部件,將圖像大小(縮放)爲低分辨率(比如說640x640)。然後我想將這些調整大小的圖像上傳到服務器。主要是爲了防止大文件上傳。圖像上傳小部件,調整圖像大小然後上傳
實施它的最佳方法是什麼?我使用JQuery和Django。
我想創建一個圖像上傳小部件,將圖像大小(縮放)爲低分辨率(比如說640x640)。然後我想將這些調整大小的圖像上傳到服務器。主要是爲了防止大文件上傳。圖像上傳小部件,調整圖像大小然後上傳
實施它的最佳方法是什麼?我使用JQuery和Django。
雖然您可以通過編寫執行相同操作的Flash和Silverlight墊片來緩解此問題,但瀏覽器對此的支持將受到限制。我已經看到了一些關於如何做到這一點的html5示例。
Plupload是一個很好的管理工具,併爲您提供上面詳細介紹的墊片和上傳器。
http://www.plupload.com/example_all_runtimes.php
,如果你看一下例子嵌入代碼有一個大小調整對象中,你可以定義在您的文章
使用畫布和HTML5說明的參數配置的一部分。
這非常簡單,只需使用FileReader(在iOS/iPhone上無法工作,因爲它們沒有用戶級別的文件)就可以在從輸入類型文件元素返回的文件/文件列表中打開:
function fileSelectHandler(e) {
files = e.target.files;
var len = files.length;
for(var filei = 0; filei < len; filei += 1) {
var aFile = files[filei];
var fileReader = new FileReader();
fileReader.onload = (function (theFile) {
return function(e) {
if(e.target.result != null && e.target.result != undefined) {
var imge = new Image();
imge.src = e.target.result;
imageDataURLs[theFile.name] = imge;
imge.onload = (function() {
return function(e) {
draggables[0] = new Draggable(g3,imge);
draggableFlow.launch();
};
})();
}
};
})(aFile);
fileReader.readAsDataURL(aFile);
} // for next file
};
然後將圖像寫入畫布元素,並使用戶可以將其拖動並裁剪。當他們很高興使用CanvasRenderingContext2D.getImageData從畫布中獲取數據,並將該base64字符串發送到XHR中的服務器時。
我會試一試。對於iPhone/iPad,我想寫一個單獨的應用程序。所以這不是什麼問題。感謝您的詳細回覆:) – 2012-02-22 07:59:35
Pulpload對我的要求來說似乎是完美的!感謝您的迴應:) – 2012-02-22 07:58:11