私はabc.xlsファイルを持っており、コマンドプロンプトを使ってabc.docという名前に変更しました。 私の要件は次のとおりです。適切なdocファイルをアップロードしたいが、ファイルのMIMEタイプのみをチェックしてファイルをアップロードすることができますが、これでは十分ではありません。私はdocファイルをアップロードする前に、それがdocであり、abc.docファイルをアップロードすることを許可しないことを確認したい。ウェブページでアップロードする前のワード文書を読む方法
答えて
アップロードする前に、クライアントシステムのファイルコンテンツにアクセスするには、おそらくActiveXオブジェクトが必要です。
function CheckWordDoc(filepath){
var fso, f, ts, s;
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.getFile(filepath);
ts = f.OpenAsTextStream(ForReading, TristateUseDefault);
while (!ts.AtEndOfStream) {
s = ts.ReadLine();
if (s.indexOf("Word.Document.8") != -1) {
ts.Close();
return true;
}
}
ts.Close();
return false;
}
http://www.piclist.com/techref/language/asp/vbs/vbscript/jsmthopenastextstream.htm http://msdn.microsoft.com/en-us/library/:それは本当のdocだかどうかを見つけるために、JavaScriptを使用してバイト配列をチェックする:-) EDITかかわら興味深い証明するかもしれませんhwfw5c59%28V = VS.85%29.aspx
から私達がこれを決めることができないサイズは適切なdocファイル – baviskarss
です。だから、実際のdocファイルであるかどうかバイト配列を調べるのは面白いと言われています...古いdocファイルの最後に "Word.Document.8"のようなものがあります。 docxファイルは圧縮されたxmlであり、ノードを定義する "word /"テキストが時折あります...しかし、今日のほとんどのブラウザではActiveXがデフォルトでブロックされていますので、ファイルをアップロードしてディスクに保存する前にサーバ上のバイトを確認することをおすすめします。 – Elementenfresser
OPはコメントでそれを書いたので:あなたは、検証が常にサーバ側で起こるはず、ここで間違って軌道に乗っている
、あなたは追加の検証を追加することができますクライアント側では必要ですが、必須ではありません。単純な理由でこれを行う必要があります。
クライアントは、クライアントが完全に制御できるため、クライアント側の検証メソッドを回避することができます。したがって、たとえあなたの検証方法を実装してドキュメントやExcelドキュメントをチェックしても、悪意のあるユーザーは常に妥当性検査を無効にして投稿要求を送信するだけで、Excelのドキュメントやウイルスなどを入手できます。
これは、Webプログラミングの基本原則です。入力データを信用しないと、クライアントでのみ検証することはできません!
第2に、検証はサーバー上で簡単に実行できます。したがって、ファイルをアップロードして(ファイル拡張子が&であることを確認してください)、サーバーで検証してください。
- 1. ワード文書のカバーページの名前を取得する方法は?
- 2. C#でXML文書を読む方法
- 3. Android - ウェブページのコンテンツを読む方法
- 4. ウェブページの証明書情報を読む
- 5. ワード文書のURLを別の文書にコピーする方法は?
- 6. 角で文字列にオンラインのHTML文書を読む方法
- 7. VBScriptを使用してワード文書ファイルから値を読み取る方法
- 8. ワード文書でハイパーリンクを見つける方法は?
- 9. ワード文書をエラスティック・サーチにインポートする方法
- 10. コピーデータは、ワード文書
- 11. Luceneの文書を読む
- 12. ワード位置の文書インデックス
- 13. ウェブページで最初に画像を読み込む方法
- 14. 前の文をプロローグに書き込む方法は?
- 15. JAXB XML文書を読む
- 16. ロータスノート文書を読むc#
- 17. MSワード文書をHTMLに埋め込む?
- 18. 文書 - タグの名前を名前で取得する方法
- 19. Visual C++でMSワード文書を暗号化/復号化する方法
- 20. 変換ワード文書は
- 21. ドミノ文書からMSワード
- 22. スクラップを含むウェブページ::前に
- 23. ウェブページにアップロードするファイルの名前をプログラムで設定する
- 24. JavaScriptを使用して文書を読む方法
- 25. ウェブページを読むPython 3.6
- 26. GWT - アップロードする前にファイルの内容を読む
- 27. ワードで使用されるキャリッジリターンの量を読む
- 28. PHPで単語文書を読む
- 29. オンラインで文章を書く/読む
- 30. ASP.NETでXML文書を読む
可能な複製http://stackoverflow.com/q/71944/745359 – wintersolutions
なぜクライアント側の検証が必要ですか?入力を信頼しない場合は、サーバー上で再度確認する必要があります。リンクされた質問に記載されている解決策はどうですか? – wintersolutions
実際にはdocファイルではないExcelファイルを開くと何が起きましたか?msファイルで開こうとすると破損したファイルのようなエラーが出ます。だから私はこの未来の問題を避けようとしています。 – baviskarss