首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

libcurl 實現 HTTP 文件上傳到 Tomcat 完整指南

     編輯:程式設計綜合問答

核心認知

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 類文件。

libcurl 客戶端代碼

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 授權後的特定接口,需申請開發者資質並遵循其協議。

本地測試建議

  1. 啟動後端服務,確認 curl -F "file=@test.txt" https://localhost:8080/upload 成功。
  2. 使用 nc -l 8080 或 Wireshark 抓包驗證請求格式。
  3. 注意大文件需設置 CURLOPT_INFILESIZE_LARGE 並啟用斷點續傳邏輯。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved