2017-04-22 5 views
0

電子アプリケーションでファイルダイアログを保存し、ユーザーファイルデータフォルダに既に保存されているpdfファイルを保存する必要がある小さな割り当てに取り組んでいます。私のアプリケーションは次のように動作します。電子アプリケーションでローカルファイルシステムからpdfファイルをダウンロードできるようにする

  1. ユーザーがWebサイトからzip圧縮フォルダをダウンロードする(このフォルダは、HTML、コンテンツ、およびPDFのように、すべてのデータのユーザーのニーズを含ん)
  2. ユーザーがすべて見に電子アプリにzip形式のフォルダをドロップダウンロードされたコンテンツ
  3. サーバーからファイルをダウンロードする動作を模倣するダウンロードファイルボタンがあります(ただし、サーバーのリソースを最大限に活用するために、すべての要求されたコンテンツをユーザーが既にサーバーのラウンドトリップを防ぐためにダウンロードした単一の圧縮フォルダに圧縮しました)
  4. 今私はそれらのローカルに保存されたPDFを表示したいder)

私はwindow.open( 'file:/// file-path')を試しましたが、うまくいきません。ファイルを表示できないエラーメッセージが表示されます。以下のように複数のオプションを試した後

答えて

0

(セキュリティ上の問題のために):PDFファイルの相対パスにhrefのポインティングでアンカータグを追加する

  • 、それはeectronでPDFコンテンツは表示されません。 は、window.open関数を試してみました
  • を失敗し、それがが原因最後に、私はすべてのファイルが電子で開かれていることを学んだが、ユーザー/のAppData /ローミング/「アプリケーション名」/興味深いことに内に保存されている
  • セキュリティ問題にを失敗しました電子アプリはこの場所内のすべてのコンテンツにアクセスできます(ユーザーがファイルを手動でドロップしたため)。だから私はfs nodeパッケージを使ってファイルを読み込み、ファイルの保存ダイアログを表示した。

など。

var app = require('electron'), 
    dialog = app.dialog, 
    fs = require('fs'); 

var pdfContent = fs.readFileSync(app.GetPath('UserData')); 
dialog.showSaveDialog({ title: 'app'}, pdfContent, function(err){ /*show error*/}); 
//something like this 
関連する問題