1

我正在編寫REST控制器,它應該允許用戶上傳文件。春季:方法不允許上傳文件

我有一個類

@RestController 
@RequestMapping("/profiles/{userId}/files") 
public class FileController { 

    @PostMapping(path = "upload") 
    public String uploadFile(@PathVariable("userId") long userId, 
              @RequestParam("file") MultipartFile file) throws IOException { 
    //some logic here 

    } 

,但我得到

{ 
"timestamp": 1502301243676, 
"status": 405, 
"error": "Method Not Allowed", 
"message": "Method Not Allowed", 
"path": "/profiles/12351/files/upload" 
} 

難道我做錯了什麼?沒有@PathVariable的發佈請求工作正常,但我需要這個。下面的代碼

@RestController 
    @RequestMapping("/profiles/{userId}/files") 
    public class FileController { 

     @RequestMapping(value = "upload", method = RequestMethod.POST) 
     public String uploadFile(@PathVariable("userId") long userId, 
               @RequestParam("file") MultipartFile file) throws IOException { 
     //some logic here 

     } 
+0

你是如何調用這個資源? –

+0

@RossiRobinsion via Postman –

+0

可能需要'CSRF'令牌。 –

回答

-1

使用謝謝你,夥計們。至少我找到了原因。 這是我的錯:我有許多不同的控制器,其中一個是 "/profiles/{userId}/{source}",其中GET方法映射到同一端點。 所以這個控制器試圖處理我的請求,但不能。 我改變了它的路徑,我的第一個變成了工作。 感謝您的關注和答覆。

+0

@PostMapping沒有「方法」參數。這是相當於@RequestMapping(方法= POST) –

+0

@NikolayRomanov修改後的代碼,由於 – Akash

+0

與requestmethod交@Akash requestmapping相當於postmapping,您的代碼是相同的 –

0