diff --git a/OpenAuth.App/Files/FileApp.cs b/OpenAuth.App/Files/FileApp.cs
index 92e9a0c0..093f7c7c 100644
--- a/OpenAuth.App/Files/FileApp.cs
+++ b/OpenAuth.App/Files/FileApp.cs
@@ -67,11 +67,6 @@ namespace OpenAuth.App
///
public List Add(IFormFileCollection files)
{
- if (!_auth.CheckLogin())
- {
- throw new Exception("必需登录才能上传附件");
- }
-
var result = new List();
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)
};
diff --git a/OpenAuth.WebApi/Controllers/FilesController.cs b/OpenAuth.WebApi/Controllers/FilesController.cs
index b7634e1b..e0b6f9b9 100644
--- a/OpenAuth.WebApi/Controllers/FilesController.cs
+++ b/OpenAuth.WebApi/Controllers/FilesController.cs
@@ -65,9 +65,10 @@ namespace OpenAuth.WebApi.Controllers
/// 批量上传文件接口
/// 客户端文本框需设置name='files'
///
- ///
+ /// 不能读取文件以外的其他form-data参数
/// 服务器存储的文件信息
[HttpPost]
+ [AllowAnonymous]
public Response> Upload(IFormFileCollection files)
{
var result = new Response>();
@@ -83,5 +84,31 @@ namespace OpenAuth.WebApi.Controllers
return result;
}
+
+ ///
+ /// 以form-data的形式上传文件
+ /// 通常用于类似vform上传等功能
+ ///
+ /// 客户端可以带其他参数
+ /// 服务器存储的文件信息
+ [HttpPost]
+ [AllowAnonymous]
+ public Response> UploadWithFormData(IFormCollection formdata)
+ {
+ var result = new Response>();
+ try
+ {
+ var files = HttpContext.Request.Form.Files;
+ result.Result = _app.Add(files);
+ }
+ catch (Exception ex)
+ {
+ result.Code = 500;
+ result.Message = ex.Message;
+ }
+
+ return result;
+ }
+
}
}