using Common.Utils; 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.Http; namespace Server.Controllers.OnlineTools { public class FileController : ApiController { [HttpPost, ErrorFilter] public WebResult Upload() { WebResult result = new WebResult(); Console.WriteLine(Request); var provider = new MultipartMemoryStreamProvider(); //读取文件数据 var r = Request.Content.ReadAsMultipartAsync(provider).Result; var item = provider.Contents[0]; if (item.Headers.ContentDisposition.FileName != null) { var ms = item.ReadAsStreamAsync().Result; using (var br = new BinaryReader(ms)) { if (ms.Length <= 0) { result.Data = "文件长度为空"; } byte[] data = br.ReadBytes((int)ms.Length); var fileName = Guid.NewGuid().ToString("N") + Path.GetExtension(item.Headers.ContentDisposition.FileName.Replace("\"", "")); var path = CsharpHttpHelper.HttpExtend.MapFile(fileName, "网站\\Cache\\Images"); File.WriteAllBytes(path, data); result.Ok = true; result.Data = $"http://{Util.QueryInternetIP()}/Cache/Images/{fileName}"; return result; } } else { result.Data = "未知的上传内容"; } return result; } } }