• SpringMVC 文件上传(Multipart)


    作者QQ:1095737364    QQ群:123300273     欢迎加入!

        

      平时用的上传一般是输入流和输出流上传,今天使用的是transferTo方法:

        Multipart请求是在控制器实例中实现一个Multipart HttpServletRequest接口的request对象,MultipartHttpServletRequest接口简单地扩展了默认的HttpServletRequest接口,并提供一些用来处理请求文件的方法。

               transferTo方法实现文件是通过复制文件来实现,下面是一些Multipart的一些方法:

        • getSize():获得文件长度,以此决定允许上传的文件大小。
        • isEmpty():判断上传文件是否为空文件,以此决定是否拒绝空文件。
        • getInputStream():将文件读取为java.io.InputStream流对象。
        • getContentType():获得文件类型,以此决定允许上传的文件类型。
        • transferTo(dest):将上传文件写到服务器上指定的文件。

       

     下面是具体的示例:  

    引入jar包

    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.1</version>
    </dependency>

    SpringMVC 下加入以下代码

    <!-- 需要文件上传功能时,启用以下配置 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxInMemorySize">
            <value>1638400</value>
        </property>
    </bean>

    jsp前端:

    <input name="upgradeFile" type="file">

    Java后台:

    @RequestMapping(value = "/upgrade", method = RequestMethod.POST)
        public ModelAndView versionUpgrade(@RequestParam(value="upgradeFile",required=false) MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception {
            //保存上传
            String contextpath=request.getContextPath();
            String webappPath=request.getSession().getServletContext().getRealPath("/");
            OutputStream out = null;
            InputStream fileInput=null;
            try{
                if(file!=null){
                    String originalName=file.getOriginalFilename();
                    String type=file.getContentType();
                    String filepath=request.getServletContext().getRealPath("/")+uploadDir+"/"+originalName;         
                    filepath= Utils.format(filepath);
                    File files=new File(filepath);
                   //打印查看上传路径
                    System.out.println(filepath);
                    if(!files.getParentFile().exists()){
                        files.getParentFile().mkdirs();
                    }
                    file.transferTo(files);
                }
            }catch (Exception e){
            }finally{
                try {
                    if(out!=null){
                        out.close();
                    }
                    if(fileInput!=null){
                        fileInput.close();
                    }
                } catch (IOException e) {
                }
            }
    
    
  • 相关阅读:
    微信小程序开发之初探
    C# 利用SharpPcap实现网络包捕获嗅探
    C# SharpMap的简单使用
    C# 实现中国象棋【棋盘,棋子】
    C# 实现FTP客户端
    C# 实现连连看功能
    C# 实现截图软件功能
    C# 利用PrintDocument定制打印单据
    驰骋工作流引擎设计系列05 启动流程设计
    驰骋工作流引擎设计系列04 流程引擎表结构的设计
  • 原文地址:https://www.cnblogs.com/yysbolg/p/6544154.html
Copyright © 2020-2023  润新知