2

Web ページにファイル構造があり、次のシナリオの解決策を探しています。

選択したファイルはブラウザのキャッシュにダウンロードされ、開かれます (Excel ドキュメントの場合は、Excel で開くなど)。ユーザーがファイルを変更すると、それが検出され、ファイルが再度アップロードされる必要があります。

これはJavaScriptでも可能ですか? はいの場合、ファイルをどこに保存しますか (一時的なインターネット フォルダーですか?)、変更を検出するにはどうすればよいですか?

4

3 に答える 3

0

これが機能する唯一の方法は、ダウンロードしたファイルをユーザーに選択させ、変更を確認することです。

HTML

<label for="excelFile">Select the excel file: </label><input type="file" id="excelFile" />

JS

//Change event to detect when the user has selected a file
document.querySelector("#excelFile").addEventListener("change",function(e){
   //get the selected file
   var file = this.files[0];

   //get the last modified date
   var lastModified = file.lastModified;

   //check lastModified against stored lastModified
   //this assumes you store the last mod in localStorage
   if(localStorage['excelLastMod'] < lastModified){
       //It has modified update last mod
       localStorage['excelLastMod'] = lastModified;

       //do upload
   }
});

ユーザーが Chrome を使用していることがわかっている場合は、Chrome の FileSystem APIを使用できます

于 2015-06-12T19:20:14.497 に答える
0

あなたの助けとアイデアをありがとう。この機能を含むソフトウェア ( https://www.group-office.com/ ) を見たので、それを行う方法があるに違いありません。

chromeファイルシステムAPIを使用した新しいアイデア(@Siguzaはすでにそれを言っています):

  • ファイルシステムAPIを使用して、ユーザーのローカルファイルシステムにサーバーデータベースからファイルを作成します
  • ファイルをローカルで開く (ファイルシステムで動作するはずです: http://www.example.com/persistent/info.txt、または?)
  • ファイルの最終変更を x 秒ごとにポーリングする
  • 変更が検出された場合は、ファイルをサーバー データベースにアップロードします

Excel でファイルをロックする際に問題が発生しましたHTML5 ファイル API を使用してファイルが変更されたかどうかを確認します が、それ以外は機能するはずです

于 2015-06-13T18:22:10.870 に答える
0

あなたの説明: いいえ、それは JavaScript では不可能です。
FTP クライアントが必要なようです。

ユーザーがファイルを変更すると、それが検出され、ファイルが再度アップロードされる必要があります。

JS はファイル システムにほとんどアクセスできないため、これは不可能です。
ファイルにアクセスできる唯一の方法は、ユーザーにファイルを選択するように要求することです。次を参照してください:
Javascript でローカル ディスク ファイルを開くには?

したがって、できることのほとんどは次のとおりです。

  1. ファイルがダウンロードされます。
  2. ブラウザと設定に基づいて、ファイルが自動的に開かれる場合と開かれない場合があります。
  3. ユーザーには、編集が完了したときに使用できるファイル選択ダイアログが表示されます。
  4. 選択したファイルをサーバー上のファイルと比較し、変更されている場合はアップロードします。

ファイルをダウンロードした後は、それを制御することはできません。
プロトコルが登録されているアプリケーション(steam://たとえば、. ファイルの変更を検出することはまったく不可能であり (ファイルにアクセスできないため)、再度アップロードするには、ユーザーがファイル ダイアログを使用して手動でファイルを選択する必要があります。if

于 2015-06-12T19:14:37.270 に答える