Error:Could not find a part of the path .......

Error:Could not find a part of the path .......

一、场景

现在公司有个需求,要在后台自定义报告内容:封面内页目录等;很明显,一定要用到文件上传的功能,Bug出现的问题是这样子的:
· 1、本地正常运行,上传无误
· 2、测试服务器运行正常,上传无误
· 3、正式服就不行了,Error:Could not find a part of the path

在这里插入图片描述

很懵逼,因为本地和测试服运行都OK啊,根本无法定位,最难搞的是,正式服有毛病,只能通过正式服发布后再能验证是否对吧,然而团队协作开发永远不是一个人在进行,没办法,每次更新通过Git上传到正式服,每次最少也得20来分钟,就这样将时光虚耗在漫长的等待中…

二、Bug重现

无奈啊,已经停滞了一天啊,笔者已经厌烦了这样的等待,没有思考空间我们就应该创造思考空间,不能思考的时光,无异于慢性自杀;于是,尝试了两种方案:
· 1、不给文件夹授权读写的操作
· 2、让上传文件的文件夹不存在(直接删除:开发环境不影响)
· 呼!深吸一口气,Bug总算在重现!

在这里插入图片描述

三、解决方案

找到了问题的根结所在,就有发挥的空间了!
· 1、直接才该路径下创建该文件夹即可,并授权读写操作
· 2、做一下判断,若该路径不存在,创建一下就OK了

        [HttpPost]
        public async Task Upload()
        {
            //处理上传的文件
            var file = Request.Form.Files.FirstOrDefault();
            if (file != null)
            {
                var type = file.FileName.Substring(file.FileName.IndexOf('.'));
                var date = DateTime.Now.ToString("yyyyMMddHHmmssfffff");

                //拼接文件存储路径
                string filePath = @"/file/report";
                string path = _env.WebRootPath + filePath;

                //上传后文件名
                string fileName = date + type;

                //路劲不存在、则创建
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                using (FileStream stream = new FileStream(Path.Combine(path, fileName), FileMode.Create))
                {
                    await file.CopyToAsync(stream);
                }
            }          
        } 

在这里插入图片描述

再次推上服务器,问题总算解决!

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值