⑴ 怎麼在前端生成縮略圖,只上傳縮小後的圖片
需要瀏覽器支持html5。
用FileReader讀取本地文件,再用Image載入此文件並縮放繪制到canvas上。最後canvas.ToDataURL()取得縮放後文件的Base64編碼,將此編碼上傳到服務端,解碼為byte[]後,寫入文件。
⑵ 怎樣用html5實現拖拽上傳文件
,首先要判斷拖入的文件是否符合要求,包括圖片類型、大小等,然後獲取本地圖片信息,實現預覽,最後上傳。
$(function(){
...接上部分
var box = document.getElementById('drop_area'); //拖拽區域
box.addEventListener("drop",function(e){
e.preventDefault(); //取消默認瀏覽器拖拽效果
var fileList = e.dataTransfer.files; //獲取文件對象
//檢測是否是拖拽文件到頁面的操作
if(fileList.length == 0){
return false;
}
//檢測文件是不是圖片
if(fileList[0].type.indexOf('image') === -1){
alert("您拖的不是圖片!");
return false;
}
//拖拉圖片到瀏覽器,可以實現預覽功能
var img = window.webkitURL.createObjectURL(fileList[0]);
var filename = fileList[0].name; //圖片名稱
var filesize = Math.floor((fileList[0].size)/1024);
if(filesize>500){
alert("上傳大小不能超過500K.");
return false;
}
var str = "<img src='"+img+"'><p>圖片名稱:"+filename+"</p><p>大小:"+filesize+"KB</p>";
$("#preview").html(str);
//上傳
xhr = new XMLHttpRequest();
xhr.open("post", "upload.php", true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
var fd = new FormData();
fd.append('mypic', fileList[0]);
xhr.send(fd);
},false);
});
⑶ Html5移動端上傳圖片並裁剪 - Clipic.js
Clipic.js插件可以為移動端 (僅支持移動端) 提供頭像上傳並裁剪成指定尺寸,用原生js開發的,輕量級,包含html跟css,不到8kb。點此鏈接體驗: https://teojs.github.io/clipic/
https://github.com/teojs/clipic
參數說明
width:Number (默認:500) – 裁剪寬度
height:Number (默認:500) – 裁剪高度
ratio:Number (可選) – 裁剪的比例,當傳入ratio時width/height將無效
src:String (必傳) – 需要裁剪的圖片,可以是圖片鏈接,或者 base64
type:String (默認:jpeg) – 裁剪後圖片的類型,僅支持 jpeg/png 兩種
quality:Number (默認:0.9) – 壓縮質量
buttonText:Array (默認:[『取消』, 『重置』, 『完成』]) – 底部三個按鈕文本
http://bbs.itying.com/topic/5cb17892c6a71b10bcef96b0
⑷ html5怎麼壓縮圖片
利用canvas的drawImage方法來繪制圖片,並且設置繪制的圖片的width跟height,最後再通過canvas的toDataURL方法來生成壓縮後的dataUR
下面直接上代碼:
html:
[html]view plain
<divclass="head_imgpr">
<emclass="pa"></em>
<imgsrc='../images/icon_touxiang.png'alt=""class="modify_img"/>
<inputid="photo"type="file"accept="image/*"/>
</div>