文件下载

文件下载内容被篡改

  1. 环境:sprongBoot+hutools工具类

  2. 代码如下:

 /**
     * desc: 文件下载
     * param:    http://127.0.0.1:83/download?path=20200709&fileName=63610ee-862c-4b55-9461-4c1ffe18e1c8@%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20200622141419.jpg
     * return:
     * author: CDN
     * date: 2019/11/17
     */
    @GetMapping("download")
    public Object download(HttpServletResponse response, @RequestParam Map<String, Object> map) throws IOException {
        if (map.isEmpty()) {
            return "文件不能为空";
        }
        String fileUrl =uploadPath+ map.get("path").toString() +File.separator+ map.get("fileName").toString();
//        String suffix = map.get("suffix").toString();
        ServletOutputStream outputStream = response.getOutputStream();
        response.setContentType("application/force-download");
        //        设置编码,避免文件名中文乱码
        response.setHeader("Content-Disposition", "attachment;filename=" + new String(map.get("fileName").toString().getBytes("gb2312"), "ISO8859-1") );
        outputStream.write(FileUtil.readBytes(fileUrl));
        IoUtil.close(outputStream);
        return null;
    }
  1. 异常描述:文件下载没有报错,但是打开文件,内容是一段异常,内容被篡改
  2. 原因分析:
    文件下载之前没有判断文件是否存在,下载的文件不存在;
        File file = FileUtil.file(fileUrl);
        if (StringUtils.isEmpty(path) || file == null || !file.exists()) {
            throw new ParamException("文件不存在");
        }
  1. 解决方案:
    文件下载前,做校验,如果不存在,做相应处理
我们都知道,新域名在百度搜索引擎中是有一个沙盒期的,在沙盒期内,百度会对网站进行观察,过了这个沙盒期的考核之后,新域名才算是被百度所认同的。老域名顾名思义早就过了沙盒期,在对于信任度上是远远优于新域名的,那么老域名对百度收录的影响到底有多大呢,下面怀米网就和大家简单介绍一下。 老域名对百度收录有帮助吗 老域名在各大搜索引擎的数据库里曾经被收录过,会保存在历史数据库里,当你重新启用时,历史数据库里的信息将被重新激活,甚至上线就直接收录。一般来说,刚上线没多久的新站,就算你的内容和外链做的再好,在短时间之内都不会有什么排名,就算你给网站疯狂做了大量外链让它有了排名也会被K掉,因为搜索引擎会觉得你的网站短期内增加太多外链不正常。不过如果是老域名的话,那结果就不同了,为什么呢?因为搜索引擎已经把老域名从数据盒中挑离出来,因此如果是突然在短时间内增加了较多的外链的话,老域名在一般情况下都是不会被K的,所以说域名历史越久的,搜索引擎给予它的权重就会高一点。 老域名对百度收录的影响 一、百度注重域名的注册时间和域名是否有做站经历,这个结论以前的站长前辈已经说过了,但是没有拿出证据; 二、有一个比较老的域名,即使你的站点比较新、长时间未更新过,一旦更新了,百度还是会比较快的收录并放出来; 三、由之前观察所知,百度对有一定年限的域名收录放出之后不会再隐藏,这个是新域名无法比拟的,说明百度不但比较喜欢老域名,而且对老域名赋予的权重并不会因为域名更改不同的网站而降为0; 四、对于百度是否对老域名收录之后的排名是否有一定照顾暂时未能得到证明。 以上就是关于老域名对百度收录影响的介绍,希望对大家有所帮助。我们都知道,新域名在百度搜索引擎中是有一个沙盒期的,在沙盒期内,百度会对网站进行观察,过了这个沙盒期的考核之后,新域名才算是被百度所认同的。老域名顾名思义早就过了沙盒期,在对于信任度上是远远优于新域名的,那么老域名对百度收录的影响到底有多大呢,下面怀米网就和大家简单介绍一下。 老域名对百度收录有帮助吗 老域名在各大搜索引擎的数据库里曾经被收录过,会保存在历史数据库里,当你重新启用时,历史数据库里的信息将被重新激活,甚至上线就直接收录。一般来说,刚上线没多久的新站,就算你的内容和外链做的再好,在短时间之内都不会有什么排名,就算你给网站疯狂做了大量外链让它有了排名也会被K掉,因为搜索引擎会觉得你的网站短期内增加太多外链不正常。不过如果是老域名的话,那结果就不同了,为什么呢?因为搜索引擎已经把老域名从数据盒中挑离出来,因此如果是突然在短时间内增加了较多的外链的话,老域名在一般情况下都是不会被K的,所以说域名历史越久的,搜索引擎给予它的权重就会高一点。 老域名对百度收录的影响 一、百度注重域名的注册时间和域名是否有做站经历,这个结论以前的站长前辈已经说过了,但是没有拿出证据; 二、有一个比较老的域名,即使你的站点比较新、长时间未更新过,一旦更新了,百度还是会比较快的收录并放出来; 三、由之前观察所知,百度对有一定年限的域名收录放出之后不会再隐藏,这个是新域名无法比拟的,说明百度不但比较喜欢老域名,而且对老域名赋予的权重并不会因为域名更改不同的网站而降为0; 四、对于百度是否对老域名收录之后的排名是否有一定照顾暂时未能得到证明。 以上就是关于老域名对百度收录影响的介绍,希望对大家有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值