56 lines
1.7 KiB
C#
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;
|
|
}
|
|
|
|
|
|
}
|
|
}
|