0

Spring アプリケーションにファイル アップロード機能を実装しようとしています。

現在、multipleHTML5 フォームの属性を使用して複数のファイルをサーバーに送信しています。ファイルはコントローラーにアクセスしていますが、サーバーの宛先への転送に問題があります。

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleUpload(@RequestParam("files[]") List<MultipartFile> files, Model model) {

    String fileName;
    File transferFile;
    String filePath = System.getProperty("catalina.base") + File.separator + "resources" + File.separator;
    ArrayList<File> fileList = new ArrayList<File>(files.size());
    ArrayList<String> fileNameList = new ArrayList<String>(files.size());


    for (MultipartFile file : files) {

        fileName = filePath + file.getOriginalFilename();
        transferFile = new File(fileName);
        fileNameList.add(fileName);

        try {
            if (transferFile.exists()) {
                logger.info("Successful Transfer!");
                file.transferTo(transferFile);
            else 
                logger.info("Could not create file at " + fileName);

catch ブロックやその他のログを省略しましたが、transferFileオブジェクトは作成されますが、その場所には存在しません。

指定した場所にファイルを作成するにはどうすればよいですか?

4

1 に答える 1

2
  1. フォームタグに enctype='multipart/form-data' を追加したことを確認してください。

構成ファイル spring.xml で定義されていることを確認します

 <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 <!-- one of the properties available; the maximum file size in bytes -->
          <beans:property name="maxUploadSize" value="100000000" />
 </beans:bean>

2.ファイルタグの名前属性を確認し、コントローラーメソッドhandleUploadで同じものを使用します。

3.ユーザーからファイルを転送している指定された場所にファイルが作成されているかどうかを確認します。つまり、transferFileが宛先にファイルを作成するかどうかを確認します。

于 2013-05-06T10:42:28.497 に答える