1. 程式人生 > >Spring的文件上傳功能upload

Spring的文件上傳功能upload

gis for get ray byte 3.1 try msg inpu

用全部Annotation配置方式來傳文件, 首先也是修改配置類:

@Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/index").setViewName("/index");
        registry.addViewController("/hello").setViewName("/index");
        registry.addViewController("/fileupload").setViewName("/upload");
//增加一個fileupload的重定向, 指向一個upload.jsp文件, 裏面就是兩個input, 具體下面貼 } @Bean
//這個Multipart接應者(這翻譯也是沒sei了), 僅僅設置了一下最大文件尺寸, 如果超過這個尺寸就會報錯,
//具體的報錯還能修改Exception的那個interceptor來定義跟傳msg, 重定向, 試過, 挺好用
public MultipartResolver multipartResolver() { CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); multipartResolver.setMaxUploadSize(1000000); return multipartResolver; }

上傳測試用的jsp文件簡單貼一下:

... ...
    <div class="upload">
        <form action
="upload" enctype="multipart/form-data" method="post"> <input type="file" name="file" /><br> <input type="submit" value="上傳" /><br> </form> </div> ... ...

然後你不是點了上面的submit麽, 執行的action是"upload", 這肯定是對應一個controller的, 下面就是:

@Controller
public class
UploadController { @RequestMapping(value = "upload", method = RequestMethod.POST) @ResponseBody public String upload(MultipartFile file) { try { FileUtils.writeByteArrayToFile(new File("c:/upload/" + file.getOriginalFilename()), file.getBytes()); return "ok"; } catch (IOException e) { e.printStackTrace(); return "wrong"; } } }

Linux的精(bian)英(tai)們, 修改一下這裏的目錄名即可.

就修改配置, 然後做一個controller, 測試建一個jsp, 就搞定了, 簡單地要死吧.

哦對了, pom裏面加上common-io的包:

        <!-- 文件上傳 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>

        <!-- 可簡化I/O操作 -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.3</version>
        </dependency>
        

註明出處, 全部內容來自"Spring Boot實戰"一書, 我已經購買了kindle的正版(這是個壞習慣, 因為csdn全他媽有, 從源代碼到原書pdf, 連淘寶都省了), 才不到10塊錢, 推薦大家都買正版, 打擊盜版...畢竟人家寫書是費了時間的, 如果沒人為之付費, 誰他媽還做知識傳播?誰以後還敢寫書, 對吧?

Spring的文件上傳功能upload