我们需要验证文件类型。因此,应接受某些文件类型。
只要文件名之间没有空格,实际代码就可以正常工作。但是,如果有一个文件,我们到达"error ...!!!"
路径,程序会说该文件无效。
示例:Home home.png
被标记为无效,而HomeHome.png
被标记为有效。
即使文件名中包含空格,如何匹配文件名?
下面是我的代码
public boolean fileUpload(UploadedFile uploadFile) {
boolean validFile = true;
System.out.println("file date...!!!" + uploadFile.getFileName());
System.out.println("file date...!!!" + uploadFile.getSize());
String expression = "([^\\s]+(\\.(?i)(jpg|xls|xlsx|doc|jpeg|png|pdf|ppt|pptx|docx|txt|xml|PNG|101701|AQR|ERR|CFR|RPA|AES|CAO|CIC|CAI|IMC|IMA|ITC|CDN|CIR|IMR|IME|ITR|CDR|CUN|CIN|CCN|CGI|IDL|IGR|IIL|IQL|NNL|SSR|STN))$)";
if ((uploadFile.getSize() != 0)) {
System.out.println(" file name" + uploadFile.getFileName());
if ((!uploadFile.getFileName().matches(expression))) {
System.out.println("error ...!!!" + uploadFile.getFileName());
validFile = false;
}
}
}
答案 0 :(得分:0)
因为您要跳过表达式中的空格。即插入符号(^
)
String expression = "([^\\s]+(\\.(?i)(jpg|xls|xlsx|doc|jpeg|png|pdf|ppt|pptx|docx|txt|xml|PNG|101701|AQR|ERR|CFR|RPA|AES|CAO|CIC|CAI|IMC|IMA|ITC|CDN|CIR|IMR|IME|ITR|CDR|CUN|CIN|CCN|CGI|IDL|IGR|IIL|IQL|NNL|SSR|STN))$)";
代替使用:
String expression = "([^\\.]+(\\.(?i)(jpg|xls|xlsx|doc|jpeg|png|pdf|ppt|pptx|docx|txt|xml|PNG|101701|AQR|ERR|CFR|RPA|AES|CAO|CIC|CAI|IMC|IMA|ITC|CDN|CIR|IMR|IME|ITR|CDR|CUN|CIN|CCN|CGI|IDL|IGR|IIL|IQL|NNL|SSR|STN))$)";
答案 1 :(得分:0)
如果可以使用正则表达式,请尝试
String fileName = uploadFile.getFileName()。replaceAll(“ \ s +”,“”);
答案 2 :(得分:0)
(([[a-zA-Z0-9 \ s _ \\。\-:])+。(?i)(jpg | xls | xlsx | doc | jpeg | png | pdf | ppt | pptx | docx | txt | xml | 101701 | AQR | ERR | CFR | RPA | AES | CAO | CIC | CAI | IMC | IMA | ITC | CDN | CIR | IMR | IME | ITR | CDR | CUN | CIN | CCN | CGI | IDL | IGR | IIL | IQL | NNL | SSR | STN)$)
此regix可以处理任何空间问题