2

JavaScriptを使用してアップロードする前にファイルのコンテンツタイプを検証するにはどうすればよいですか?私は拡張機能の検証を求めていません。PDF、プレーンテキスト、MSWordファイルを検証したい。

djangoforms.ModelFormを使用してファイルアップロードウィジェットをhtmlに渡します。サーバー側でもこれを達成できませんでした。ここにその質問があります、

Django-アップロードされたファイルタイプの検証

4

2 に答える 2

2

攻撃者が他の手段を使用してファイルをアップロードし、検証を回避する可能性があるため、セキュリティは提供されない可能性があります。

拡張子を使用してファイルタイプを確認するには(操作が非常に簡単なため非常に安全ではありません)、JavaScriptを使用できます。この質問を参照してください:ファイルアップロードのファイルタイプを検証するにはどうすればよいですか?

[編集]グーグルした後、要素にmimeタイプのパターンのリストをとるinput属性があることがわかりました。accept残念ながら、ほとんどのブラウザはそれを無視します(またはファイル選択ダイアログを微調整するためにのみ使用します)。この質問を参照してください:ファイル入力'accept'属性-それは役に立ちますか?

[編集2]現在、File API(「Webアプリケーションからのファイルの使用」を参照)が、ファイル拡張子を実際に使用したくない唯一の方法のようです。各Fileインスタンスにはtype、mimeタイプを含むプロパティがあります。

ただし、このAPIは進行中のため、どこでも利用できるわけではありません。また、MIMEタイプを取得する保証はありません(プロパティは"")です。

したがって、このアプローチをお勧めします。FileAPIを試してください。使用できない場合、またはtypeプロパティが空の場合は、ファイル拡張子を使用します。

于 2012-08-02T08:26:49.447 に答える
2

理論的には、FileAPIを使用してファイルを読み取ることができます。

次に、気になるファイル形式のパーサーをJavaScriptで記述して、それらが一致するかどうかを確認する必要があります。

于 2012-08-02T08:24:49.307 に答える