Tomcat 本身是 Servlet 容器,**不內建文件上傳處理邏輯**;必須編寫後端代碼(Servlet、Spring Controller 等)接收 multipart/form-data 請求並保存文件。
@PostMapping("/upload")
public ResponseEntity upload(@RequestParam("file") MultipartFile file) {
Path dest = Paths.get(UPLOAD_DIR, file.getOriginalFilename());
Files.copy(file.getInputStream(), dest, StandardCopyOption.REPLACE_EXISTING);
return ResponseEntity.ok("上傳成功:" + dest);
}
文件存儲路徑由代碼決定,**不會自動出現在 work/Catalina/localhost**,該目錄僅存放編譯後的 JSP 類文件。
CURL *curl = curl_easy_init();
if (curl) {
curl_mime *mime = curl_mime_init(curl);
curl_mimepart *part = curl_mime_addpart(mime);
curl_mime_name(part, "file");
curl_mime_filedata(part, "local_path/video.mp4");
curl_easy_setopt(curl, CURLOPT_URL, "https://localhost:8080/upload");
curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
CURLcode res = curl_easy_perform(curl);
curl_mime_free(mime);
curl_easy_cleanup(curl);
}
不可行。百度網盤未提供公開的第三方上傳 API/SDK,僅支持官方客戶端或開放平台 OAuth 授權後的特定接口,需申請開發者資質並遵循其協議。
curl -F "file=@test.txt" https://localhost:8080/upload 成功。nc -l 8080 或 Wireshark 抓包驗證請求格式。CURLOPT_INFILESIZE_LARGE 並啟用斷點續傳邏輯。