1. 程式人生 > 其它 >js-input file 檔案上傳(照片,視訊,音訊)

js-input file 檔案上傳(照片,視訊,音訊)

<input type="file" accept="image/*"capture="camera">

<input type="file" accept="video/*"capture="camcorder">

<input type="file" accept="audio/*"capture="microphone">

accept表示開啟的系統檔案目錄;

capture表示的是系統所捕獲的預設裝置(camera:照相機;camcorder:攝像機;microphone:錄音);

multiple:支援多選,當支援多選時,multiple優先順序大於capture;

再我做的一個紅包活動中,需要笑臉照片來判斷髮紅包,所以用到了input type="file"的標籤屬性,本來用的capture="camera"直接拍照,但是在ios上調相機是沒有美顏功能的,擔心使用者不會選擇上傳,所以之後改變策略了,用了multiple,就是這樣;

我的原始碼:

<img src="" class="closebtnimg" id="closeimg1" /> //該標籤是要放上傳的照片的哈

<input type="file"accept="image/*" multiple class="img"onchange="javascript:setImagePreview('addimg1','closeimg1');"

id="addimg1" />(錯誤的,有些手機不支援,底部有更新的正確的寫法)

js:

vardocObj;
function setImagePreview(btnfile, imgId) {
docObj= document.getElementById(btnfile);
varimgObjPreview= document.getElementById(imgId);
if (docObj.files && docObj.files[0]) {
imgObjPreview.style.display = 'block';
imgObjPreview.style.width = '100%';
imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
} else {
imgObjPreview.style.display = 'block';
}
return true;
}

以上是我的程式碼,很完美的哈,經過測試驗證的。

2018-7-11更新調整

本來以上的程式碼是ok的,但是後期我用了大量的手機測試,有些手機是不成功的,所以上面的Html更新為最新的:

<input type="file"accept="image/*"class="img"onchange="javascript:setImagePreview('addimg1','closeimg1');"id="addimg1" />(正確的,所有手機支援選擇拍照,照片)