electron 文件及文件夾上傳的問題探索

不曉得如今electron最新版的dialog解決了這個問題沒有 選擇文件夾的時候沒有返回文件夾裏面全部的文件 而是返回了文件夾的路徑
一樣的在網頁端是能夠經過webkitDirectory獲取到文件夾下面全部的文件node

我試了不少的方式 下面的方式是能夠成功上傳文件夾下面全部的文件(這裏單文件的上傳不在敘述 只討論文件夾的上傳)
本人業務須要 添加了一些你可能不用的參數 因此邏輯是這個 具體就看你本身的作法web

第一 經過dialog獲取到文件夾的路徑 定義爲dirpath.
第二 經過node的fs讀取文件夾下的全部文件路徑 代碼大概以下:ajax

function fileDisplay(dirpath){
  fs.readdir(dirpath,(err,files)=>{
      if(err){console.log(err)}else{
          files.forEach((filename)=>{
              var filedir = path.join(paths,filename);
              fs.stat(filedir,(error,stats)=>{
                  if(error){}else{
                      var isFile = stats.isFile();
                      var isDir = stats.isDirectory();
                      if(ifFile){
                          fs.readFile(fileDir,(eror,data)=>{
                              if(err) throw err;
                              filepack(data,filedir)
                          })
                      }
                      if(ifDir){
                          fileDisplay(fileDir)
                      }
                  }
              })
          })
      }
  })
}

第三 生成文件app

function filepack(data,filepath){
    let = filename = filepath.split('\\')[filepath.split('\\).length-1];
    let file = new File([data],filename,{type:'image/'+filepath.split('.').reverse()[0]});
    let fileData = new FormData();
    fileData.append('file',file);
    fileData.append('filename',filename);
    let fileUploadData = fileData.getAll('file')[0];
    post(fileUploadData)
}

function post(file){
    //提交
    ajax.post()
}

第三步中的 new File那步中我直接用image是能夠上傳任意其餘格式的文件的 目前沒有發現會受這個的影響 有更好的方式的朋友能夠給我說哈 iview

再次說明 直接用代碼確定是不行的 由於去掉了不少中間的不重要的步驟 可是基本的三個是上面的幾個
上傳的代碼參考iview upload組件的源碼 我是經過修改它的源碼來改進的electron

我是參考這個搞出來的:https://blog.csdn.net/Wbiokr/...post

相關文章
相關標籤/搜索