SpringMVC 文件上傳

Spring MVC

  • maven
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.3</version>
</dependency>
  • spring配置
<!--文件上傳依賴配置-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="maxUploadSize" value="209715200"/>
        <property name="resolveLazily" value="true"/>
    </bean>
<!--添加aop,用于新建上傳目錄-->
    <aop:aspectj-autoproxy/>
    <bean id="fileAop" class="org.yiva.exam.aop.FileAop"/>
  • 編碼

前端

<form id="upload" class="layui-form" action="${base}/file/doUpload" method="post" enctype="multipart/form-data">
    <div class="layui-form-item">
        <label class="layui-form-label">上傳文件</label>
        <div class="layui-input-block">
            <input type="file" name="uploadFile" required lay-verify="required" placeholder="請輸入部門名稱"
                   autocomplete="off" class="layui-input">
        </div>
    </div>
    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn" lay-submit lay-filter="formDept">立即提交</button>
        </div>
    </div>
</form>

controller

@PostMapping(value = {"doUpload"})
    @ResponseBody
    public String upload(@RequestParam("uploadFile") MultipartFile file) throws IOException {
        logger.info(file.getOriginalFilename());
        if (!file.isEmpty()) {

            try {
                FileUtils.copyInputStreamToFile(file.getInputStream(), new File(CommonsInfo.UPDATE_PATH, file.getOriginalFilename()));
            } catch (IOException e) {
                e.printStackTrace();
            }
            return "success";
        }
        return "fail";
    }

aop

@Aspect
public class FileAop {

    private Logger logger = Logger.getLogger(FileAop.class);

    @Pointcut("execution(* org.yiva.exam.controller.FileController.upload(..))")
    public void poincutFile(){

    }

    /**
    *  在訪問上傳文件功能前判斷是否已經(jīng)存在上傳文件的保存目錄,如沒有則新建
    */
    @Before(value = "poincutFile()")
    public void before(JoinPoint joinPoint) throws IOException {
        File folder = new File(CommonsInfo.UPDATE_PATH);
        if (!folder.isDirectory() || !folder.exists()) {
            folder.mkdirs();
            logger.info("create Directory updateFile");
        }
    }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容