練習1-file Upload

11903 ワード


  • Springレガシーの作成

  • pom.xmlではjavaバージョン1.8/springバージョン5.2.6です.RELEASEに変更

  • maven>updateプロジェクトまたは
    properties > project faucets > java1.8に変更して適用

  • pom.Apache Common FileUpload mvn依存項目をxmlに追加
  • <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.4</version>
    </dependency>
  • servlet-context.xmlにmultipartResolverを追加する
  • <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    </beans:bean>
  • home.jspにファイルレジストリ
  • を追加
    <form action="file_upload" method="post" enctype="multipart/form-data">
    	<input type="file" name="myfile">
    	<input type="submit" name="submitBtn" value="ok">
    </form>
    作成
  • HelloController
  • import java.io.File;
    import org.springframework.core.io.Resource;
    import org.springframework.core.io.ResourceLoader;
    import org.springframework.web.multipart.MultipartFile;
    
    
    	@Autowired
    	ResourceLoader rsLoader;
    
    	@PostMapping("/file_upload")
    	public String fileUpload(MultipartFile myfile) throws IllegalStateException, IOException { // jsp 파일 name과 변수명 맞추기
    		System.out.println("파일 업로드 "+myfile.getOriginalFilename());
    		//myfile.transferTo(new File("C:/ssafy/ssafy_"+myfile.getOriginalFilename())); //내가 저장하고 싶은 곳
    
    		String filename = myfile.getOriginalFilename();
    		filename = new String(filename.getBytes("8859_1"),"utf-8");	
    
    		Resource resource = rsLoader.getResource("resources/upload"); //상대경로
    		myfile.transferTo(new File(resource.getFile().getCanonicalPath()+
    				"/"+filename)); //내가 저장하고 싶은 곳
    		System.out.println("저장성공");
    		return "redirect:/";
    	}
    
  • マルチセクションファイルでmyfile
  • を受信する必要があります.
  • は現在ローカルテストであるため、ファイルはTomcatのプライマリサーバ上のフォルダにダウンロードされます.
    このファイルはC:\test\sts-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\zFileUpload\resources\uploadパスに格納されます.
  • ファイルの保存時にハングル文字を処理
    filename = new String(filename.getBytes("8859_1"),"utf-8");	
    注意:https://entro80.tistory.com/17