0

私のアプリケーションでは、画像/オーディオ/ビデオ ファイルをアップロードしています。各タイプの許可された拡張機能の固定セットを許可しました。拡張子が提供された拡張子のリストと一致しない場合はアップロードされませんが、ユーザーが .exe、.pdf ファイルの名前を .jpg または .png に変更すると、UI 検証がクリアされ、サーブレットが呼び出されてアップロードされます。起こります。しかし、それは後に問題を引き起こします。

バックエンドで同じことを確認し、それに応じて例外をスローする方法はありますか?

私は使用してみました:

import java.net.*;

public class FileUtils{
    public static String getMimeType(String fileUrl) throws java.io.IOException {
        FileNameMap fileNameMap = URLConnection.getFileNameMap();
        String type = fileNameMap.getContentTypeFor(fileUrl);
        return type;
    }

    public static void main(String args[]) throws Exception {
        System.out.println(FileUtils.getMimeType("file:/home/kavinder/file.pdf"));
        // this is a .jpg file renamed to .pdf
    }
}

こちらは延長のみの返品です。と

import javax.activation.MimetypesFileTypeMap;
import java.io.File;

class GetMimeType {
    public static void main(String args[]) {
        File f = new File("/home/kavinder/file.jpg");
        System.out.println("Mime Type of " + f.getName() + " is " + new MimetypesFileTypeMap().getContentType(f));
    }
}

これは常に MIME タイプを次のように返します: application/octet-stream

前もって感謝します

4

0 に答える 0