前端 Uploadify 配置
$('#file_upload').uploadify({
'swf': '/uploadify.swf',
'uploader': '/api/upload',
'fileTypeExts': '*.jpg;*.png;*.gif',
'multi': true,
'onUploadSuccess': function(file, data, response) { console.log(data); }
});
Spring MVC 後端
@RestController
@RequestMapping("/api")
public class UploadController {
@PostMapping("/upload")
public ResponseEntity> upload(@RequestParam("Filedata") MultipartFile file) {
if (file.isEmpty()) return ResponseEntity.badRequest().body("文件為空");
String original = file.getOriginalFilename();
String ext = original.substring(original.lastIndexOf("."));
String newName = UUID.randomUUID() + ext;
Path path = Paths.get(UPLOAD_DIR, newName);
Files.copy(file.getInputStream(), path);
return ResponseEntity.ok("{\"url\":\"/files/" + newName + "\"}");
}
}
關鍵點
- Uploadify 默認字段名為 `Filedata`,`@RequestParam("Filedata")` 接收。
- 配置 `MultipartResolver` (Spring Boot 自動配置)。
- 文件名用 UUID 防衝突,存儲路徑配置在屬性文件。
- 返回 JSON 含訪問 URL,前端回調顯示。
參考
wallimn Uploadify Java 後端完整教程