10

Html5 で再開可能なアップロードを実装したいのですが、アップロードするファイルが既に部分的にアップロードされたものと同じであることを識別することを除いて、すべてが機能しているようです。理想的には、一意の ID を生成するファイルのクライアント側のハッシュが必要ですが、それの機能する実装が見つからず、大きなファイルには遅すぎるようです (私が扱っているように)。

次に、ファイルへのパスを一意の識別子として使用することを考えましたが、API から取得する方法が見つかりませんでした。ユーザーはファイルに共通の名前を付ける傾向があるため、ユーザーごとのファイル名を一意にすることはできません。誰でもこれに対する解決策を考えることができますか?

4

2 に答える 2

1

Mozilla Hacksで一時停止または壊れたファイルのアップロードを再開する方法で説明したように、おそらく、ユーザーがファイルを再選択しなくてもアップロードを再開できるように、IndexedDBを使用してファイルをブラウザーに保存できます。

IndexedDBを使用してファイルを保存する方法のチュートリアルについては、「IndexedDBへの画像とファイルの保存」を参照してください。

于 2012-06-19T03:49:29.907 に答える
1

最良の選択は単純なハッシュだと思います(MD5は、大きなファイルでは遅すぎて役に立ちません)。

別の方法: アップロードにファイル名 (および、同じ名前の複数のファイルがアップロードされた場合は、ある種の実行番号 (file-1、file-2、file-3 など) を使用) で名前を付け、既にアップロードされたファイルのランダムなバイト数をチェックします。そしてローカルファイル。例えば:

  1. 同じファイル名を持つすべてのファイルを検索します (実行中の番号付けを除く)
  2. サーバーからの 10 MB ごとに 10 バイトをローカル ファイルと比較してください。これらのバイトが一致する場合、これが正しいファイルであることに十分な確信を持てます。

もちろん、これは間違ったファイルにつながる可能性がありますが、ハッシュも同様です。

于 2011-12-06T07:43:44.510 に答える