java如何判断jsp页面form表单中类型为file的input是否有选中文件或文件夹
时间: 2024-05-13 20:20:33 浏览: 82
在JSP中判断form表单中类型为file的input是否有选中文件或文件夹,可以通过以下步骤实现:
1. 在JSP页面中添加一个form表单,并在其中添加一个type为file的input元素。
2. 在JSP页面中添加一个提交按钮,通过点击该按钮来提交表单。
3. 在JSP页面中添加一个Java代码段,通过该代码段来判断input元素是否选择了文件或文件夹。
以下是示例代码:
```
<%@ page import="java.io.*" %>
<%
String fileName = "";
String savePath = "C:/uploads/"; // 文件保存路径
File file = null;
int maxSize = 10 * 1024 * 1024; // 文件最大大小,10MB
String[] allowedExt = {"jpg", "jpeg", "png", "gif", "bmp"}; // 允许上传的文件类型
String errorMsg = "";
if (request.getMethod().equalsIgnoreCase("post")) {
String contentType = request.getContentType();
if (contentType.indexOf("multipart/form-data") >= 0) {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(maxSize);
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
String name = item.getName();
if (name != null && !name.equals("")) {
fileName = name.substring(name.lastIndexOf("\\") + 1);
String ext = fileName.substring(fileName.lastIndexOf(".") + 1);
boolean allowed = false;
for (String s : allowedExt) {
if (s.equals(ext.toLowerCase())) {
allowed = true;
break;
}
}
if (!allowed) {
errorMsg = "只允许上传以下类型的文件:" + Arrays.toString(allowedExt);
break;
}
file = new File(savePath + fileName);
item.write(file);
}
}
}
}
}
if (file != null && file.exists()) {
out.println("文件上传成功!");
} else {
if (errorMsg.length() > 0) {
out.println(errorMsg);
} else {
out.println("请选择要上传的文件!");
}
}
%>
<form name="uploadForm" method="post" enctype="multipart/form-data">
<input type="file" name="uploadFile">
<input type="submit" value="上传">
</form>
```
阅读全文