SWFUpload 只是前端上傳組件,負責將文件以 multipart/form-data POST 發送到服務端 URL。它無法控制服務端是否寫文件,服務端收到請求後完全由後端代碼決定如何處理輸入流。
HttpRequest,獲取 InputStream(或 Request.Files、MultipartFile)。Files.copy(inputStream, targetPath))。{success:true, path:...}),SWFUpload 回調 uploadSuccess。
@PostMapping("/upload")
@ResponseBody
public Map upload(@RequestParam("file") MultipartFile file) {
Map result = new HashMap<>();
if (file.isEmpty()) {
result.put("success", false);
result.put("msg", "文件為空");
return result;
}
try (InputStream in = file.getInputStream()) {
// 這裡完全由你控制:寫文件、上傳OSS、解析內容、或直接丟棄
// Files.copy(in, Paths.get("/data/upload", file.getOriginalFilename()));
// 自定義處理...
result.put("success", true);
result.put("path", "/custom/path/" + file.getOriginalFilename());
} catch (IOException e) {
result.put("success", false);
result.put("msg", e.getMessage());
}
return result;
}
「不讓 SWFUpload 在服務端寫文件」本身就是默認行為。請檢查你的後端控制器代碼,確認是否有顯式寫文件邏輯(如 file.transferTo()、FileOutputStream),移除或替換即可。