写真をアップロードするとき1、、いくつかの写真は画像の接尾辞の拡張子を変更、トロイの木馬ファイルであってもよいです。。。あなたはそれが写真であるかどうか、ファイルストリームを決定する必要があります
@WebServlet( "/ロード/ UploadServlet" ) パブリック クラス UploadServletが延びているのHttpServlet { / ** *文件上传 * / 保護された ボイドのdoPost(HttpServletRequestのリクエスト、HttpServletResponseの応答){ 文字列のルート = request.getServletContext()。getRealPath( "/アップロード" ); DiskFileItemFactory工場 = 新しいDiskFileItemFactory(); ServletFileUploadアップロード = 新しいServletFileUpload(工場)。 試す{ 一覧 <FileItem>リストを= upload.parseRequest(リクエスト)。 用(FileItem IT:リスト){ // ファイルが、ファイルの種類がある場合には IF(!it.isFormField()){ // のFileTypeのfileType = getFileType(it.getInputStream()); // IF(のfileType == NULL){ / / // 非画像フォーマット // response.getWriter()( "失敗")を書く; // 返す; // } // 文字列imgValue fileType.getValue =(); // するSystem.out.println(「imgValue。 「+ imgValue); //は画像形式であります it.write(新しいファイル(ルート+ "/" + it.getName())); response.getWriter()、ライト(。 "成功" ); } } } キャッチ(例外e){ 試みる{ response.getWriter()書き込み( "例外"を)。 } キャッチ(のIOExceptionのE1){ e1.printStackTrace()。 } e.printStackTrace(); } } // 判断文件是图片格式 パブリック 静的のFileType getFileType(入力ストリームです)スローのIOException { バイト [] SRC = 新しい バイト [28 ]。 is.read(SRC、 0、28 ); StringBuilderのStringBuilderの = 新しい StringBuilderの( "" ); もし(SRC == NULL || src.length <= 0 ){ 戻り ヌル。 } のために(int型 i = 0; iはsrc.length <; iは++ ){ int型 V = SRC [I]&0xFFで。 ストリングHV = Integer.toHexString(V).toUpperCase(); もし(hv.length()<2 ){ stringBuilder.append( 0 )。 } stringBuilder.append(HV)。 } のFileType [] fileTypesプロパティ = FileType.values()。 用{(fileTypesプロパティのFileTypeたfileType) 場合(stringBuilder.toString()のstartsWith(fileType.getValue())){ 返すたfileTypeと、 } } 戻り ヌル。 } }