使用Java写一个接收文件上传文件的接口,写一个完整的示例
时间: 2024-02-24 08:55:55 浏览: 152
好的,以下是一个简单的Java文件上传接口的示例代码:
```java
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
@WebServlet("/upload")
@MultipartConfig
public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 生成一个唯一的文件名
String fileName = UUID.randomUUID().toString();
// 获取上传的文件
Part filePart = request.getPart("file");
InputStream fileContent = filePart.getInputStream();
// 保存文件到本地
File file = new File("/path/to/save/file/" + fileName);
FileOutputStream outputStream = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = fileContent.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.close();
fileContent.close();
// 响应客户端上传成功的信息
response.getWriter().println("File uploaded successfully!");
}
}
```
在上面的示例中,我们使用了Java 8的Servlet 3.0规范中的`@MultipartConfig`注解来处理上传的文件。我们还使用了`Part`类来获取上传的文件,然后将文件保存到本地。最后,我们向客户端发送一个成功的响应。
注意,上面的示例代码中的文件保存路径`/path/to/save/file/`需要根据实际情况进行修改。此外,我们还需要在前端编写一个HTML表单,来实现文件上传功能。以下是一个简单的HTML表单示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件上传示例</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
</body>
</html>
```
在上面的表单中,我们使用了`enctype="multipart/form-data"`来指定表单数据类型为多部分表单数据,这样就可以支持文件上传了。`<input type="file">`用于选择上传的文件,`<input type="submit">`用于提交表单。
阅读全文