yz_server/Server/Controllers/OnlineTools/FileController.cs

56 lines
1.7 KiB
C#

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;
}
}
}