最近比較忙,現在來整理一下近期的成果,方便以后再次使用。
關於圖片上傳的js 和jq
jq
$("input").change(function () { var $file = $(this); var fileObj = $file[0]; var windowURL = window.URL || window.webkitURL; var dataURL = windowURL.createObjectURL(fileObj.files[0]); $(this).parent().find('img').attr('src', dataURL); });
js
input.onchange =function(e){ //e是event對象 e = e || window.event; //通過event.target.files獲取文件列表,通過數組索引的方式去獲取列表中的文件 var img1 = e.target.files[0]; //獲取url對象 var url = window.url || window.webkitURL; //通過url對象將二進制文件創建成一個url的格式 var src = url.createObjectURL(img1); //將獲取的二進制對象文件地址 設置為img圖片的地址 img.src = src; //可以手動銷毀剛才創建的二進制文件對象 url.revokeObjectURL(img1); };
同步和表單一起上傳
$("input[type=file]").change(function (e) { var file=this.files[0]; var reader=new FileReader(); reader.readAsDataURL(file); reader.onload=function(e){ console.log(this.result); base64圖片編碼 $("input[name='uploadFile']").val(this.result); $(this).parent().find('img').attr('src', this.result); } });
圖片上傳 : 插件上傳
layui插件 鏈接地址:https://www.cnblogs.com/GoTing/p/8857388.html 第5個問題
圖片選取問題:
當寫<input type="file"> 的時候,在IOS上可以成功調起拍照和圖庫兩塊,在安卓手機上只能調取圖庫而沒有拍照功能;
解決辦法:給input 加上accept屬性,加上了capture=camera"屬性之后安卓手機就直接調用了相機,沒有了圖庫的選項
<input type="file" accept="image/*" capture="camera"> // 相機 <input type="file" accept="video/*" capture="camcorder"> // 視頻 <input type="file" accept="audio/*" capture="microphone"> // 音頻
注:capture表示,可以捕獲到系統默認的設備,如:camera 照相;camcorder 攝像;microphone 錄音。