Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的文件扩展名异常处理_Java_Exception - Fatal编程技术网

java中的文件扩展名异常处理

java中的文件扩展名异常处理,java,exception,Java,Exception,我想在上传文件时排除执行扩展文件Ex:exe,java,。。。 我写的条件,但在那之后Idk如何做捕捉的事情与它! 我想在上传文件时显示一条警告消息。我能做些什么吗 @Component("fileUtils") public class FileUtil { String filePath = "/Dev/file/"; String imgPath = "/Dec/img/"; //create file public void parseInsertFileInfo(HttpServle

我想在上传文件时排除执行扩展文件Ex:exe,java,。。。 我写的条件,但在那之后Idk如何做捕捉的事情与它! 我想在上传文件时显示一条警告消息。我能做些什么吗

@Component("fileUtils")
public class FileUtil {
String filePath = "/Dev/file/";
String imgPath = "/Dec/img/";

//create file
public void parseInsertFileInfo(HttpServletRequest request, FileInfoVo boardEntity) throws Exception{
    MultipartHttpServletRequest mServletRequest = (MultipartHttpServletRequest) request;
    Iterator<String> iterator = mServletRequest.getFileNames();

    MultipartFile mFile = null;
    String orgFilename = null;
    String filename = null;
    String orgFileExtension = null;
    String sysFilename = null;

    int boardIdx = 1;

    //make dir when there is no dir
    File file = new File(filePath);
    if(!file.exists()){
        file.mkdirs();
    }


    while(iterator.hasNext()){
        mFile = mServletRequest.getFile(iterator.next());
        if(!mFile.isEmpty()){
            orgFilename = mFile.getOriginalFilename(); 
            orgFileExtension = orgFilename.substring(orgFilename.lastIndexOf(".")); //.ext
            filename = orgFilename.substring(0, orgFilename.lastIndexOf(".")); //file name

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd_hhmmss");
            Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Asia"));
            sysFilename = filename + sdf.format(calendar.getTime()) + orgFileExtension; // sysFilename : filename + time(h,m,s) + .ext

            String execExt = "#.exe#.zip#.java#"; 
            String imgExt = "#.jpg#.jpeg#"; 


            if(execExt.contains(orgFileExtension)){

            } else if(imgExt.contains(orgFileExtension)){
                filePath = "/Dev/img/";
                file = new File(filePath + sysFilename);
                mFile.transferTo(file);
            } else{
                filePath = "/Dev/file/";
                file = new File(filePath + sysFilename);
                mFile.transferTo(file);
            }
        }
    }
}

您不需要抛出并捕获该异常。 确定扩展名是否在字符串中的方法应该有效,另一种方法是正则表达式

像这样试试吧,我想List.do是你想发回的

String execExt = "#.exe#.zip#.java#";

//orgFileExtension is a variable which contains extension name(".txt",".jpg",...)
if(execExt.contains(orgFileExtension)){    
    sendRedirect("List.do"); 
}

您的问题不清楚…您可以使用正则表达式排除某些文件…无论如何,请检查此项,如果只是在捕获重定向后才抛出异常,为什么要抛出异常?只需直接重定向,无需尝试/捕获抱歉英语不是我的第一语言,因此我的解释不清楚。我只是想排除一些文件扩展名。我知道有一种方法可以用javascript实现,但我有一个制作文件的类,所以我想我可以在这里实现。也许我会添加更多的代码!