

文件上传种类
1.Java后端代码(使用Servlet):
java
@WebServlet("/upload")
public class FileUploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取上传的文件
Part filePart = request.getPart("file");
String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString(); // MSIE fix.
InputStream fileContent = filePart.getInputStream();
// 保存文件到服务器
OutputStream out = new FileOutputStream(new File("/path/to/upload/" + fileName));
int read = 0;
byte[] bytes = new byte[1024];
out = new FileOutputStream(new File("/path/to/upload/" + fileName));
while ((read = fileContent.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
out.flush();
out.close();
}
}
2.Spring Boot后端代码:
java
@RestController
public class FileUploadController {
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
// 获取文件名
String fileName = file.getOriginalFilename();
// 保存文件到服务器
File dest = new File("/path/to/upload/" + fileName);
file.transferTo(dest);
return "File uploaded successfully: " + fileName;
} catch (Exception e) {
return "File upload failed: " + e.getMessage();
}
} else {
return "File is empty";
}
}
}
3.Node.js后端代码:
java
const express = require('express');
const multer = require('multer');
const app = express();
const port = 3000;
// 设置文件存储
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/path/to/upload/');
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
}
});
const upload = multer({ storage: storage });
app.post('/upload', upload.single('file'), (req, res) => {
res.send('File uploaded successfully.');
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}/`);
});
4.批量上传
java
@Controller
@RequestMapping("/user")//根据这个地址区分访问哪个模块 http://localhost:8080/user/xxx
public class UserController {
//批量上传:把前端同时选中的多个文件,一股脑保存到 C:\\upload 目录,并在控制台打印用户名。
@RequestMapping(value = "/quick23")
@ResponseBody
public void save23(String username, MultipartFile[] uploadFile) throws IOException {
System.out.println(username);
for (MultipartFile multipartFile : uploadFile) {
String originalFilename = multipartFile.getOriginalFilename();
multipartFile.transferTo(new File("C:\\upload\\" + originalFilename));
}
}