zoukankan      html  css  js  c++  java
  • Download And Uploader

    Uploader:

    Controller:

    @Controller
    public class FileUpload {
        @RequestMapping("upload")
        //MultipartFile获取表单上传的文件,参数要和表单的name一样
        public String demo1(MultipartFile file,String name) throws IOException {
            //获取表单的数据
            System.out.println(name);
            //获取表单上传的文件流
            InputStream fileInputStream = file.getInputStream();
            //获取上传的文件名,不可以用getName(),因为getName获得的是表单的name
            String fileName = file.getOriginalFilename();
            //获取上传文件的后缀名
            String suffix = fileName.substring(fileName.lastIndexOf("."));
            //生成一个不重复的字符串
            UUID randomUUID = UUID.randomUUID();
            //新建 一个File对象 ,将文件输出到D盘
            File outputFile = new File("D:/"+randomUUID.toString()+suffix);
            //FileUtils工具类将流输出到文件
            FileUtils.copyInputStreamToFile(fileInputStream, outputFile);
            return "index.jsp";
        }
    }

    html:

    <body>
        <form action="upload" enctype="multipart/form-data" method="post" >
            name:<input type="text" name="name" />
            file:<input type="file" name="file" />
            <input type="submit" name="upload" />
        </form>
    </body>

    SpringMVC.xml:

        <!-- MultipartResolver解析器 ,如果不配置,会导致获取不到数据-->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 上传文件最大为50K -->
            <property name="maxUploadSize" value="50"></property>
        </bean>
        <!-- 异常解析器。如果出现指家的异常,跳转到指定的页面 -->
        <bean id="exception" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <property name="exceptionMappings">
                <props>
                    <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">/error.jsp</prop>
                </props>
            </property>
        </bean>

    DownLoad:

    Contorller:

        @RequestMapping("myDownload")
        public void demo1(String fileName,HttpServletRequest request,HttpServletResponse response) throws IOException {
            //设置响应头,如果不设置,浏览器会尝试解析文件,如果解析不了,才会提示下载
            response.setHeader("Content-Disposition","attachment;filename="+fileName);
            //获取字节输出流
            ServletOutputStream outputStream = response.getOutputStream();
            //获取files文件夹在硬盘的路径
            String path = request.getServletContext().getRealPath("files");
            //new一个file对象 
            File file = new File(path,fileName);
            System.out.println(file);
            //FileUtils工具类,将文件转换为字节数组
            byte[] fileBytes = FileUtils.readFileToByteArray(file);
            //将字节数组输出到ServletOutputStream中
            outputStream.write(fileBytes);
            outputStream.flush();
            outputStream.close();
        }
    }

    html:

        <a href="myDownload?fileName=apache.rar">myDownload</a><br>
  • 相关阅读:
    数组,一维,二维,多维
    类函数:string、math
    while和for的内嵌
    循环语言(for)
    选择语言之switch case
    程序语言
    语言、数据和运算符
    原理之一,进制转换
    HTML第一部分
    结构体共用变量 递归
  • 原文地址:https://www.cnblogs.com/lastingjava/p/10023775.html
Copyright © 2011-2022 走看看