【移動端】input type="file" multiple為true無法在安卓系統多選問題解決——利用H5+的plus.gallery.pick


一、pick

從系統相冊選擇文件(圖片或視頻)

詳情見官網:https://www.html5plus.org/doc/zh_cn/gallery.html#plus.gallery.pick

語法:

void plus.gallery.pick(successCB, errorCB, options);

參數:

    • succesCB: GalleryPickSuccessCallback | GalleryMultiplePickSuccessCallback ) 必選 從系統相冊中選擇文件完成后的回調函數

      單選時通過GalleryPickSuccessCallback回調函數返回選擇的圖片或視頻文件路徑,多選時通過GalleryMultiplePickSuccessCallback回調函數返回圖片或視頻文件路徑。

    • errorCB: GalleryErrorCallback ) 可選 從系統相冊中選擇文件操作錯誤的回調函數
    • options: GalleryOptions ) 可選 設置選擇文件的參數

示例:

// 從相冊中選擇多張圖片 
function galleryImgs(){
    // 從相冊中選擇圖片
    console.log("從相冊中選擇多張圖片:");
    plus.gallery.pick( function(e){
        for(var i in e.files){
            console.log(e.files[i]);
        }
    }, function ( e ) {
        console.log( "取消選擇圖片" );
    },{filter:"image",multiple:true});
}

但是在web端input type="file"得到的event.target.files是具體的文件信息,而plus.gallery.pick的successCB回調的e.files為文件的路徑,要想取得具體的文件信息可以使用h5+resolveLocalFileSystemURL讀取本地圖片文件,轉為file對象:

二、resolveLocalFileSystemURL

通過URL參數獲取目錄對象或文件對象

詳情見官網:https://www.html5plus.org/doc/zh_cn/io.html#plus.io.resolveLocalFileSystemURL

語法:

void plus.io.resolveLocalFileSystemURL( url, succesCB, errorCB );

參數:

    • url : DOMString ) 必選 要操作文件或目錄的URL地址

       

    • succesCB: FileResolveSuccessCallback ) 必選 獲取操作文件或目錄對象成功的回調函數

       

    • errorCB: FileErrorCallback ) 可選 獲取操作文件或目錄對象失敗的回調函數
plus.io.resolveLocalFileSystemURL(
          fileAllPath, 
          function( entry ) {                                
            // 可通過entry對象操作test.html文件 
            entry.file( function(file){
//此處的file信息就跟web端input type="file"得到的event.target.files基本一致了 ...}) })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM