Java ファイル アップロード例外 (FileUploadException) の解決方法
Web 開発でファイルをアップロードするときによく発生する問題は、FileUploadException (ファイル アップロード例外) です。この問題は、ファイル サイズが制限を超えている、ファイル形式が一致していない、サーバー構成が正しくないなど、さまざまな理由で発生する可能性があります。この記事では、これらの問題を解決するいくつかの方法について説明し、対応するコード例を示します。
ほとんどのシナリオでは、悪意のあるユーザーが大きすぎるファイルをアップロードしてサーバー負荷を引き起こすことを防ぐために、ファイル サイズを制限する必要があります。高すぎるか、ネットワーク送信時間が長すぎます。ファイル サイズを制限するには、Apache Commons FileUpload ライブラリで提供される setFileSizeMax() メソッドを使用できます。
ServletFileUpload fileUpload = new ServletFileUpload(); fileUpload.setFileSizeMax(10 * 1024 * 1024); // 限制文件大小为10MB
もう 1 つの一般的な問題は、写真やドキュメント ファイルのアップロードのみを許可するなど、アップロード ファイルの形式を制限することです。 setFileContentType() メソッドを使用して、ファイルの MIME タイプを制限できます。
ServletFileUpload fileUpload = new ServletFileUpload(); fileUpload.setFileContentType(Arrays.asList("image/jpeg", "image/png", "application/pdf")); // 只允许上传JPEG、PNG和PDF文件
ファイルの破損やアップロードの中断など、ファイルのアップロードに問題が発生することがあります。ファイルの整合性を保証するために、Apache Commons FileUpload ライブラリによって提供される isIncomplete() メソッドを使用して、ファイルが完全にアップロードされたかどうかを確認できます。
ServletFileUpload fileUpload = new ServletFileUpload(); if (fileUpload.isMultipartContent(request)) { try { List<FileItem> fileItems = fileUpload.parseRequest(request); for (FileItem fileItem : fileItems) { if (!fileItem.isFormField() && !fileItem.isIncomplete()) { // 处理上传的文件 // ... } } } catch (FileUploadException e) { e.printStackTrace(); } }
サーバー構成の問題によってファイル アップロードの例外が発生する場合があります。たとえば、アップロードされたファイルのサイズがサーバーの構成制限を超えた場合、FileUploadException が発生することがあります。この問題を解決するには、サーバーの関連構成ファイルを変更する必要があります。
たとえば、Tomcat サーバーの場合、web.xml ファイルを編集し、ファイルの
<multipart-config> <max-file-size>10MB</max-file-size> <max-request-size>20MB</max-request-size> <file-size-threshold>0</file-size-threshold> </multipart-config>
上記の構成は次のようになります。アップロードされるファイルの最大サイズを制限します。サイズは 10MB で、要求された最大サイズは 20MB で、ファイルはメモリではなくディスクに書き込まれます。
概要
Java ファイル アップロード例外 (FileUploadException) を解決する鍵は、アップロードされるファイルのサイズと形式を制限し、ファイルの整合性をチェックすることです。 Apache Commons FileUpload ライブラリによって提供されるメソッドを使用して、これらの関数を実装し、必要に応じてサーバーの関連構成ファイルを変更できます。この記事で説明した解決策がお役に立てば幸いです。
以上がJavaファイルアップロード例外(FileUploadException)の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。