アップロードするサイズが50MBを超えるファイルを選択すると、JBossサーバーが例外をスローしてJSPがハングしています。したがって、Javaサーバー側でファイルサイズを検証する代わりに、クライアント側で検証する必要があります。しかし、私はそれについて適切なアプローチを見つけることができません。誰でも助けてくれますか?フラッシュアップロード機能は使用できません。クライアント側のファイルサイズの確認javascript
答えて
このためにクライアント側の検証を使用したくないです。とにかくJSはファイルメタデータにアクセスできないだけでなく、JSもオフにすることも、完全になりすますこともできます。
具体的な問題は、通常のJava(Servlet)クラスではなく、JSPファイル内のアップロードされたファイルを解析しているかのように思えます。 JSPはHTTPレスポンスのビューテクノロジの一部であるため、JSPの途中でスローされた例外はすべて、HTTPレスポンスをエラーページに変更することはできません。クライアントは、JSP出力が突然中止されたため、ハーフベークされたHTMLソースの空白のページで終わる可能性が非常に高いでしょう。
この問題を解決するには、avoiding Java code in JSP filesで、Javaコードを通常のJavaクラスに置き換える必要があります。この特定のケースでは、servletを使用します。フォームをJSPの代わりにservletに送信します。
<form action="uploadServlet" method="post">
ここではそのdoPost()
方法がどのように見えるべきかのキックオフの例です:
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// Parse file upload.
// At end, forward request/response to JSP to present results in HTML.
request.getRequestDispatcher("/WEB-INF/results.jsp").forward(request, response);
} catch (FileUploadException e) { // Or whatever exception it is throwing.
throw new ServletException("File upload failed", e);
}
}
例外はとにかくweb.xml
に次のようにカスタマイズすることができ、デフォルトのHTTP 500エラーページになってしまいます。この道を代わりにServletException
を投げるの
<error-page>
<exception-type>com.something.FileUploadException</exception-type>
<location>/someFileUploadErrorPage.jsp</location>
</error-page>
あるいは、あなたはまた、単に属性とFORWなどのエラーメッセージを設定することができます同じJSPに置き換えて、エラーをユーザーフレンドリーな方法で同じ形式で表示させます。一般的なアイデアはservlet wiki pageで入手できます。
こんにちは、返信ありがとう... 私は春の技術MVCを私のプロジェクトに使用しているので、私はそのようなサーブレットを使用することはできません...どんなものであれ、アプリケーションクラス自体のJavaクラスエラーを投げていて、ビューがハングアップしています。私はあなたが話している問題を手に入れていると思います... –
私はこれをどのように知っていたでしょうか?どの場所でアップロードされたファイルをどのように解析しているのか、どのフレームワークを使用していたのか、あなたの質問のどこにも言及していません。少なくとも、JSによる検証はできません。セキュリティ上の制約のため、ファイルメタデータへのアクセスはありません。 – BalusC
- 1. Jmeter - クライアント側の確認
- 2. クライアント側のIDトークンの確認
- 3. JavaScriptを使用したクライアント側の確認
- 4. JavaScriptを使用したクライアント側の確認
- 5. HTMLとJavascriptクライアント側の認証
- 6. Javascriptクライアント側でのみ認証
- 7. APKファイルサイズ確認のチェックリスト
- 8. ファイルサイズの確認laravel 5.3
- 9. 複数のファイルアップロードフィールドを持つHTMLフォーム、クライアント側の最大ファイルサイズを確認する方法
- 10. JavaScriptクライアント側のドキュメントライブラリ
- 11. クライアント側とサーバー側でrecaptchaを確認する方法
- 12. クライアント側JavaScriptコードアナライザ
- 13. クライアント側のJavascriptクラッシュのサーバー側のログ
- 14. submitの前にasp.netボタンのクライアント側の確認
- 15. JavaScriptのクライアント側のバリデーション
- 16. クライアント側のjavascriptのエラーログ
- 17. サーバーからのクライアント側のエクスプレスチェックアウトを確認する
- 18. クライアント側の確認ボックスをトリガーする更新パネルのドロップダウンリスト
- 19. Java、クライアント側のNTLM認証
- 20. クライアント側のREST API認証
- 21. サーバー側のWCFクライアント認証
- 22. クライアント側のJavaScriptまたはサーバー側
- 23. クライアント側のJavaScript実行モデル
- 24. JavaScriptクライアント側ファイルの生成
- 25. Javascriptのトリミング画像クライアント側
- 26. JavaScriptクライアント側アプリケーションのパーミッション/ ACL
- 27. Azureストレージブロックブロブは、クライアント側のJavaScript
- 28. 作成前のファイルサイズを確認する
- 29. アップロード前のファイルサイズを確認する
- 30. バッチスクリプトのファイルサイズを確認する
サーバーを修正する必要があります。ユーザーは、JavaScriptの検証を無効にして、サーバーをクラッシュさせることができます。 – bdonlan