C#上传图片到服务器无法通过服务器域名路径访问

首先我使用的上传以及下载图片的方法

/// <summary>
        ///  上传功能
        /// </summary>
        //[RequestFormLimits(ValueLengthLimit = int.MaxValue, MultipartBodyLengthLimit = long.MaxValue)]
        [HttpPost]
        [RequestSizeLimit(long.MaxValue)]        //默认是上传30M,加上之后可,可以增大
        public IActionResult Upload([Required] List<IFormFile> formFiles)
        {
            string subDirectory = "images";//保存到当前根目录的文件名(跟下载的路径对应,Download方法下载时传入images/图片.jpg)
            try
            {
                if (formFiles.Count > 0)
                {
                    fileService.UploadFile(formFiles, subDirectory);
                    return Ok(new { formFiles.Count, Size = fileService.SizeConverter(formFiles.Sum(f => f.Length)), formFiles[0].FileName });
                }
                return Ok(new { formFiles.Count, Size = fileService.SizeConverter(formFiles.Sum(f => f.Length)) });
            }
            catch (Exception ex)
            {
                return BadRequest(ex.Message);
            }
        }

        /// <summary>
        /// 下载功能
        /// </summary>
        /// <param name="subDirectory">下载文件夹的路径或者下载的文件路径(当前部署路径根目录下的文件路径)</param>
        /// <returns></returns>
        [HttpGet]
        public IActionResult Download([Required] string subDirectory)
        {
            try
            {
                var (fileType, archiveData, archiveName) = fileService.DownloadFiles(subDirectory);
                return File(archiveData, fileType, archiveName);
            }
            catch (Exception ex)
            {
                return BadRequest(ex.Message);
            }
        }

使用此方法上传后,会默认在发布接口的根目录创建一个images文件夹存放上传的图片,如果我们直接用发布服务器的域名+images+图片名访问图片的话会提示404,这是因为服务器文件权限的问题,我们只需要在发布的iis中右键新建一个虚拟文件夹,然后把指向选择到根目录的images文件,然后右键虚拟文件-编辑权限-安全-编辑,新建一个角色赋予权限,即可根据域名+虚拟文件名+图片名的方式在网页打开服务器images文件夹下的图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值