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

View File

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

View File

@ -65,9 +65,10 @@ namespace OpenAuth.WebApi.Controllers
/// 批量上传文件接口 /// 批量上传文件接口
/// <para>客户端文本框需设置name='files'</para> /// <para>客户端文本框需设置name='files'</para>
/// </summary> /// </summary>
/// <param name="files"></param> /// <param name="files">不能读取文件以外的其他form-data参数</param>
/// <returns>服务器存储的文件信息</returns> /// <returns>服务器存储的文件信息</returns>
[HttpPost] [HttpPost]
[AllowAnonymous]
public Response<IList<UploadFile>> Upload(IFormFileCollection files) public Response<IList<UploadFile>> Upload(IFormFileCollection files)
{ {
var result = new Response<IList<UploadFile>>(); var result = new Response<IList<UploadFile>>();
@ -83,5 +84,31 @@ namespace OpenAuth.WebApi.Controllers
return result; 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;
}
} }
} }