Spring Boot-请求方法'POST'不支持

时间:2019-02-10 19:21:54

标签: html spring-boot

当我从计算机(exampleImage.png)中选择文件并按上载按钮时。我收到此错误:“发生意外错误(类型=不允许使用方法,状态= 405)。不支持请求方法'POST'”。请帮助我,谢谢...

MyUploadForm.java

package com.moda.form;

import org.springframework.web.multipart.MultipartFile;

public class MyUploadForm {
 
    private String description;
 
    // Upload files.
    private MultipartFile[] fileDatas;
 
    public String getDescription() {
        return description;
    }
 
    public void setDescription(String description) {
        this.description = description;
    }
 
    public MultipartFile[] getFileDatas() {
        return fileDatas;
    }
 
    public void setFileDatas(MultipartFile[] fileDatas) {
        this.fileDatas = fileDatas;
    }
 
}

MyFileUploadController.java

@Controller
public class MyFileUploadController {
 
   @RequestMapping(value = "/")
   public String homePage() {
 
      return "index";
   }
 
   // GET: Show upload form page.
   @RequestMapping(value = "/uploadOneFile", method = RequestMethod.GET)
   public String uploadOneFileHandler(Model model) {
 
      MyUploadForm myUploadForm = new MyUploadForm();
      model.addAttribute("myUploadForm", myUploadForm);
 
      return "uploadOneFile";
   }
 
   // POST: Do Upload
   @RequestMapping(value = "/uploadOneFile", method = RequestMethod.POST)
   public String uploadOneFileHandlerPOST(HttpServletRequest request, //
         Model model, //
         @ModelAttribute("myUploadForm") MyUploadForm myUploadForm) {
 
      return this.doUpload(request, model, myUploadForm);
 
   }
 
   // GET: Show upload form page.
   @RequestMapping(value = "/uploadMultiFile", method = RequestMethod.GET)
   public String uploadMultiFileHandler(Model model) {
 
      MyUploadForm myUploadForm = new MyUploadForm();
      model.addAttribute("myUploadForm", myUploadForm);
 
      return "uploadMultiFile";
   }
 
   // POST: Do Upload
   @RequestMapping(value = "/uploadMultiFile", method = RequestMethod.POST)
   public String uploadMultiFileHandlerPOST(HttpServletRequest request, //
         Model model, //
         @ModelAttribute("myUploadForm") MyUploadForm myUploadForm) {
 
      return this.doUpload(request, model, myUploadForm);
 
   }
 
   private String doUpload(HttpServletRequest request, Model model, //
         MyUploadForm myUploadForm) {
 
      String description = myUploadForm.getDescription();
      System.out.println("Description: " + description);
 
      // Root Directory.
      String uploadRootPath = request.getServletContext().getRealPath("upload");
      System.out.println("uploadRootPath=" + uploadRootPath);
 
      File uploadRootDir = new File(uploadRootPath);
      // Create directory if it not exists.
      if (!uploadRootDir.exists()) {
         uploadRootDir.mkdirs();
      }
      MultipartFile[] fileDatas = myUploadForm.getFileDatas();
      //
      List<File> uploadedFiles = new ArrayList<File>();
      List<String> failedFiles = new ArrayList<String>();
 
      for (MultipartFile fileData : fileDatas) {
 
         // Client File Name
         String name = fileData.getOriginalFilename();
         System.out.println("Client File Name = " + name);
 
         if (name != null && name.length() > 0) {
            try {
               // Create the file at server
               File serverFile = new File(uploadRootDir.getAbsolutePath() + File.separator + name);
 
               BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile));
               stream.write(fileData.getBytes());
               stream.close();
               //
               uploadedFiles.add(serverFile);
               System.out.println("Write file: " + serverFile);
            } catch (Exception e) {
               System.out.println("Error Write file: " + name);
               failedFiles.add(name);
            }
         }
      }
      model.addAttribute("description", description);
      model.addAttribute("uploadedFiles", uploadedFiles);
      model.addAttribute("failedFiles", failedFiles);
      return "uploadResult";
   }
 
}

uploadOneFile.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
 
   <head>
      <meta charset="UTF-8">
      <title>Upload One File</title>
   </head>
   
   <body>
      <th:block th:include="/_menu"></th:block>
       
      <h3>Upload One File:</h3>
       
      <!-- MyUploadForm -->
       
      <form th:object="${myUploadForm}" method="POST"
         action="" enctype="multipart/form-data">
         Description:
         <br>
         <input th:field="*{description}" style="width:300px;"/>                
         <br/><br/>  
         File to upload: <input th:field="*{fileDatas}" type="file"/>
         <br />  
         <input type="submit" value="Upload">
      </form>
       
   </body>
</html>

0 个答案:

没有答案