上传和下载文件测试

上传文件

上传文件时,存放上传文件的文件夹不能为空,因为编译时,空的文件夹在target目录下是不存在的

导入架包

 <!--sahng-->
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>

配置Spring.xml

 <!--文件上传  id的名字不能随便起-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
        <property name="maxUploadSize" value="10485760"></property>
        <!--maxUploadSize , 字节为单位传输-->
    </bean>

    <!--设置静态资源的访问-->
    <mvc:annotation-driven></mvc:annotation-driven>
    <mvc:resources mapping="/uploadimage/**" location="/uploadimage/"></mvc:resources>

上传文件测试
upload.jsp

     <form action="toupimage" method="post" enctype="multipart/form-data">
            username:<input type="text" name="username"><br>
            file<input type="file" name="fileimage">
            <input type="submit" value="保存">
        </form>

test.java

@Controller
public class JsonTest {
 @RequestMapping("/toupimage")
    public String uploadimage(MultipartFile 名字需要和传过来的参数一致, String username, HttpServletRequest request){
        //Multipart 多
        System.out.println("username"+username);
        String  path=request.getRealPath("/uploadimage");//要保存的文件夹路径
        System.out.println(path);
        try{
            fileimage.transferTo(new File(path+"/"+fileimage.getOriginalFilename()));
        }catch (IOException e) {
            e.printStackTrace();
        }
        request.setAttribute("filename",fileimage.getOriginalFilename());
        return "success";
    }
}

下载文件测试

test.jsp

<a href="down?filename=${filename}">下载</a>

test.java

@RequestMapping("/down")
    public ResponseEntity<byte[]>  downimage(String filename,HttpServletRequest request){
        //下载文件的路径
        String path=request.getRealPath("/uploadimage");
        File file=new File(path+"/"+filename);
        ResponseEntity<byte []> rsp=null;
        //设置头信息
        //创建对象
        HttpHeaders httpHeaders=new HttpHeaders();
        //设置响应的类型
        httpHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        //Disposition 性格
        try {
             httpHeaders.setContentDispositionFormData("attachment", URLEncoder.encode(filename,"utf-8"));
            rsp = new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),httpHeaders, HttpStatus.CREATED);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return rsp;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值