12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
-
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net.Http;
- using System.Text;
- using System.Threading.Tasks;
- using System.Web;
- using System.Web.Http;
- using XdCxRhDW.WebApi;
- namespace XdCxRhDW.WebApi
- {
- /// <summary>
- ///文件上传接口
- /// </summary>
- public class FileController : BaseController
- {
- private readonly string uploadFolder;
- /// <summary>
- ///
- /// </summary>
- public FileController()
- {
- this.uploadFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot");
- }
- /// <summary>
- /// 上传文件(返回上传后的文件名)
- /// </summary>
- /// <returns></returns>
- [HttpPost, SwaggerForm]
- public async Task<AjaxResult<string>> UploadFileAsync()
- {
- if (!Request.Content.IsMimeMultipartContent("form-data"))
- {
- return Error<string>("请求数据不是form-data类型");
- }
- var provider = new MultipartMemoryStreamProvider();
- await Request.Content.ReadAsMultipartAsync(provider);
- Directory.CreateDirectory(uploadFolder);
- var content = provider.Contents.First();
- var fileName = Guid.NewGuid().ToString() + ".dat";
- var fileData = await content.ReadAsByteArrayAsync();
- // 将文件保存到本地文件夹中
- var filePath = Path.Combine(uploadFolder, fileName);
- if (File.Exists(filePath))
- {
- XdCxRhDW.Framework.LogHelper.Warning($"文件[{filePath}]已存在!");
- }
- using (var fileStream = new FileStream(filePath, FileMode.Create))
- {
- await fileStream.WriteAsync(fileData, 0, fileData.Length);
- }
- return Success(fileName);
- }
- /// <summary>
- /// 批量删除文件
- /// </summary>
- /// <param name="dto">参数文件参数模型</param>
- /// <returns>返回删除成功的文件个数</returns>
- [HttpPost]
- public AjaxResult<int> DeleteFiles(FileDeleteDto dto)
- {
- if(dto.Files==null||dto.Files.Count==0)return Success(0);
- int count = 0;
- foreach (var fileName in dto.Files)
- {
- try
- {
- var file = Path.Combine(uploadFolder, fileName);
- if (File.Exists(file))
- {
- File.Delete(file);
- count++;
- }
- }
- catch (Exception ex)
- {
- XdCxRhDW.Framework.LogHelper.Error($"删除文件[{fileName}]失败!",ex);
- }
- }
- return Success(count);
- }
- }
- }
|