fix #I7YFLR vform上传异常

This commit is contained in:
wintel 2023-09-04 23:17:33 +08:00
parent c2f856f604
commit cc0e4fec9c
2 changed files with 35 additions and 7 deletions
OpenAuth.App/Files
OpenAuth.WebApi/Controllers

View File

@ -67,11 +67,6 @@ namespace OpenAuth.App
/// <returns></returns>
public List<UploadFile> Add(IFormFileCollection files)
{
if (!_auth.CheckLogin())
{
throw new Exception("必需登录才能上传附件");
}
var result = new List<UploadFile>();
foreach (var file in files)
{
@ -92,6 +87,12 @@ namespace OpenAuth.App
{
_logger.LogWarning("收到新文件为空");
}
string createUserName = "匿名";
if (_auth.CheckLogin())
{
createUserName = _auth.GetUserName();
}
if (file != null && file.Length > 0 && file.Length < 10485760)
{
@ -107,7 +108,7 @@ namespace OpenAuth.App
Thumbnail = _dbThumbnail,
FileName = fileName,
FileSize = file.Length.ToInt(),
CreateUserName = _auth.GetUserName(),
CreateUserName = createUserName,
FileType = Path.GetExtension(fileName),
Extension = Path.GetExtension(fileName)
};

View File

@ -65,9 +65,10 @@ namespace OpenAuth.WebApi.Controllers
/// 批量上传文件接口
/// <para>客户端文本框需设置name='files'</para>
/// </summary>
/// <param name="files"></param>
/// <param name="files">不能读取文件以外的其他form-data参数</param>
/// <returns>服务器存储的文件信息</returns>
[HttpPost]
[AllowAnonymous]
public Response<IList<UploadFile>> Upload(IFormFileCollection files)
{
var result = new Response<IList<UploadFile>>();
@ -83,5 +84,31 @@ namespace OpenAuth.WebApi.Controllers
return result;
}
/// <summary>
/// 以form-data的形式上传文件
/// <para>通常用于类似vform上传等功能</para>
/// </summary>
/// <param name="formdata">客户端可以带其他参数</param>
/// <returns>服务器存储的文件信息</returns>
[HttpPost]
[AllowAnonymous]
public Response<IList<UploadFile>> UploadWithFormData(IFormCollection formdata)
{
var result = new Response<IList<UploadFile>>();
try
{
var files = HttpContext.Request.Form.Files;
result.Result = _app.Add(files);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
}
}