資料夾實現拖放上傳

2021-08-27 13:20:42 字數 1139 閱讀 7154

現要求能在瀏覽器上直接拖放乙個資料夾實現批量上傳

html5規範還不支援

但是目前chrome >= 21 瀏覽器支援

現在檔案的拖放上傳採用的是

jquery-filedrop.js

這個不支援資料夾

我把這個做了改進,可以支援資料夾。

原先**:

function drop(e) 

files_count = files.length;

upload();

e.preventdefault();

return false;

}

改進如下:

function drop(e) 

if (!callback.files)

callback.pending++;

var reader = directory.createreader(),

relativepath = directory.fullpath.replace(/^\//, '').replace(/(.+?)\/?$/, '$1/');

reader.readentries(function(entries)

}, error);

} else

});if (callback.pending === 0)

}, error);

}var items = e.datatransfer.items || , firstentry;

if (items[0] && items[0].webkitgetasentry && (firstentry = items[0].webkitgetasentry())) , function() );

} else

e.preventdefault();

return false;

}

以上改進點說明:

如果瀏覽器支援資料夾拖放,判斷型別,如果是資料夾就遞迴讀取資料夾目錄樹,

找到所有檔案,最後在上傳。

怎樣做到按目錄樹儲存檔案呢?

其實遞迴讀取資料夾時,我給檔案賦值了path值,就是相對路徑,

這樣服務端就可以根據這個path,實現按目錄樹儲存了。

其他地方的修改點就不一一列出了,附上修改後的完整**。

sftp上傳資料夾

情景 利用sftp中將本地資料夾 home sentiment data 內包含子資料夾 複製到伺服器的 home work目錄下 命令 put 步驟 1.首先定位到遠端 home work 目錄下 cd home work 2.在word目錄下新建data資料夾 mkdir data 3.進入遠端...

git上傳資料夾

前提是設定好ssh keys 遠端倉庫名 1 進入要上傳的專案資料夾,使用init命令將當前目錄初始化為git倉庫git init 2.將工作區的所有 新增到暫存區git add git add.是新增本目錄所有檔案包括資料夾 3.將暫存區的檔案提取到倉庫git commit m test 4.本地...

sftp上傳資料夾

情景 利用sftp中將本地資料夾 home sentiment data 內包含子資料夾 複製到伺服器的 home work目錄下 命令 put 步驟 1.首先定位到遠端 home work 目錄下 cd home work 2.在word目錄下新建data資料夾 mkdir data 3.進入遠端...