解决修改密码报错,根据文件id下载文件方法
This commit is contained in:
parent
b092bbb817
commit
07a6c2af8a
@ -1,3 +1,4 @@
|
||||
using NLog;
|
||||
using SqlSugar;
|
||||
using ZR.Admin.WebApi.Filters;
|
||||
using ZR.ServiceCore.Model;
|
||||
@ -24,6 +25,8 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
_sysFileService = sysFileService;
|
||||
}
|
||||
|
||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
/// <summary>
|
||||
/// 查询文件存储列表
|
||||
/// </summary>
|
||||
@ -129,5 +132,44 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
return NoContent();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通过文件ID下载文件
|
||||
/// </summary>
|
||||
/// <param name="fileId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("download/{fileId}")]
|
||||
public IActionResult Download([FromRoute] long fileId)
|
||||
{
|
||||
var sysFile = _sysFileService.Queryable().Where(it => it.Id == fileId).First();
|
||||
if (sysFile == null)
|
||||
{
|
||||
throw new CustomException("服务器上不存在此文件");
|
||||
}
|
||||
|
||||
Stream? stream;
|
||||
switch ((StoreType)Enum.Parse(typeof(StoreType), sysFile.StoreType.ToString() ?? string.Empty))
|
||||
{
|
||||
case StoreType.LOCAL:
|
||||
Logger.Info("本地存储");
|
||||
stream = sysFile.IsEncrypted == "1" ? _sysFileService.DecryptSysFileStream(sysFile.FileUrl)
|
||||
: new FileStream(sysFile.FileUrl, FileMode.Open);
|
||||
break;
|
||||
case StoreType.ALIYUN:
|
||||
stream = AliyunOssHelper.DownloadFile(sysFile.FileUrl, "", sysFile.IsEncrypted == "1");
|
||||
break;
|
||||
default:
|
||||
throw new CustomException("不支持的存储类型");
|
||||
}
|
||||
if (stream != null)
|
||||
{
|
||||
return new FileStreamResult(stream, "application/octet-stream")
|
||||
{
|
||||
FileDownloadName = sysFile.RealName
|
||||
};
|
||||
}
|
||||
|
||||
return NoContent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -76,7 +76,7 @@ namespace ZR.Service
|
||||
/// <returns></returns>
|
||||
public SysUser SelectUserById(long userId)
|
||||
{
|
||||
var user = Queryable().Filter(null, true).WithCache(60 * 5)
|
||||
var user = Queryable().Filter(null, true)
|
||||
.Where(f => f.UserId == userId).First();
|
||||
if (user != null && user.UserId > 0)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user