using Microsoft.AspNetCore.Mvc;
|
using IStation.Model.Api;
|
using System.Net;
|
using System.Net.Http.Headers;
|
using Microsoft.Extensions.Hosting.Internal;
|
using Microsoft.AspNetCore.Http.Extensions;
|
|
namespace IStation.WebApi.Controllers
|
{
|
[ApiController]
|
[Route("v1/Standard")]
|
[ApiExplorerSettings(GroupName ="v1")]
|
public class StandardController : ControllerBase
|
{
|
#region ÉÏ´«Îļþ
|
|
/// <summary>
|
/// ÉÏ´«Îļþ
|
/// </summary>
|
[Route("UploadFile")]
|
[HttpPost]
|
public Result UploadFile()
|
{
|
var request = HttpContext.Request;
|
if (request.Form.Files == null || request.Form.Files.Count != 1)
|
{
|
return new Result(Code.Error, "δ¼ìË÷µ½ÉÏ´«µÄÎļþ");
|
}
|
var uploadFile = request.Form.Files[0];
|
|
var fileName = FileHelper.UploadFile(uploadFile.OpenReadStream(), Path.GetExtension(uploadFile.FileName));
|
if (string.IsNullOrEmpty(fileName))
|
{
|
return new Result(Code.Error, "ÎļþÉÏ´«Ê§°Ü");
|
}
|
return new Result<string>(fileName);
|
}
|
|
/// <summary>
|
/// ÉÏ´«Îļþµ½×ÓĿ¼ÏÂ
|
/// </summary>
|
[Route("UploadSubFile")]
|
[HttpPost]
|
public Result UploadSubFile(string Sub)
|
{
|
if (string.IsNullOrEmpty(Sub))
|
{
|
return new Result(Code.Error, "Sub ²ÎÊý´íÎó");
|
}
|
var request = HttpContext.Request;
|
if (request.Form.Files == null || request.Form.Files.Count != 1)
|
{
|
return new Result(Code.Error, "δ¼ìË÷µ½ÉÏ´«µÄÎļþ");
|
}
|
var uploadFile = request.Form.Files[0];
|
var fileName = FileHelper.UploadSubFile(Sub, uploadFile.OpenReadStream(), Path.GetExtension(uploadFile.FileName));
|
if (string.IsNullOrEmpty(fileName))
|
{
|
return new Result(Code.Error, "ÎļþÉÏ´«Ê§°Ü");
|
}
|
return new Result<string>(fileName);
|
}
|
|
#endregion
|
|
#region ÏÂÔØÎļþ
|
|
/// <summary>
|
/// ÏÂÔØÎļþ
|
/// </summary>
|
[Route("DownloadFile")]
|
[HttpGet]
|
public HttpResponseMessage DownloadFile(string FileName)
|
{
|
if (string.IsNullOrEmpty(FileName))
|
{
|
return new HttpResponseMessage(HttpStatusCode.NoContent);
|
}
|
|
var file = FileHelper.DownloadFile(FileName);
|
if (file == null)
|
{
|
return new HttpResponseMessage(HttpStatusCode.NoContent);
|
}
|
|
var result = new HttpResponseMessage(HttpStatusCode.OK);
|
result.Content = new StreamContent(file);
|
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
|
return result;
|
}
|
|
/// <summary>
|
/// ÏÂÔØ×ÓĿ¼ÏµÄÎļþ
|
/// </summary>
|
[Route("DownloadSubFile")]
|
[HttpGet]
|
public HttpResponseMessage DownloadSubFile(string Sub, string FileName)
|
{
|
if (string.IsNullOrEmpty(Sub))
|
{
|
return new HttpResponseMessage(HttpStatusCode.NoContent);
|
}
|
if (string.IsNullOrEmpty(FileName))
|
{
|
return new HttpResponseMessage(HttpStatusCode.NoContent);
|
}
|
|
var file = FileHelper.DownloadSubFile(Sub, FileName);
|
if (file == null)
|
{
|
return new HttpResponseMessage(HttpStatusCode.NoContent);
|
}
|
|
var result = new HttpResponseMessage(HttpStatusCode.OK);
|
result.Content = new StreamContent(file);
|
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
|
return result;
|
}
|
|
#endregion
|
|
#region ¸üÐÂÎļþ
|
|
/// <summary>
|
/// ¸üÐÂÎļþ
|
/// </summary>
|
[Route("UpdateFile")]
|
[HttpPost]
|
public Result UpdateFile(string FileName)
|
{
|
if (string.IsNullOrEmpty(FileName))
|
{
|
return new Result(Code.Error, "FileName ²ÎÊý´íÎó");
|
}
|
var request = HttpContext.Request;
|
if (request.Form.Files == null || request.Form.Files.Count != 1)
|
{
|
return new Result(Code.Error, "δ¼ìË÷µ½ÉÏ´«µÄÎļþ");
|
}
|
var uploadFile = request.Form.Files[0];
|
var code = FileHelper.UpdateFile(FileName, uploadFile.OpenReadStream(), Path.GetExtension(uploadFile.FileName));
|
if (string.IsNullOrEmpty(code))
|
{
|
return new Result(Code.Error, "Îļþ¸üÐÂʧ°Ü");
|
}
|
return new Result<string>(code);
|
}
|
|
/// <summary>
|
/// ¸üÐÂ×ÓÎļþϵÄÎļþ
|
/// </summary>
|
[Route("UpdateSubFile")]
|
[HttpPost]
|
public Result UpdateSubFile(string Sub, string FileName)
|
{
|
if (string.IsNullOrEmpty(Sub))
|
{
|
return new Result(Code.Error, "Sub ²ÎÊý´íÎó");
|
}
|
if (string.IsNullOrEmpty(FileName))
|
{
|
return new Result(Code.Error, "FileName ²ÎÊý´íÎó");
|
}
|
var request = HttpContext.Request;
|
if (request.Form.Files == null || request.Form.Files.Count != 1)
|
{
|
return new Result(Code.Error, "δ¼ìË÷µ½ÉÏ´«µÄÎļþ");
|
}
|
var uploadFile = request.Form.Files[0];
|
var code = FileHelper.UpdateSubFile(Sub, FileName, uploadFile.OpenReadStream(), Path.GetExtension(uploadFile.FileName));
|
if (string.IsNullOrEmpty(code))
|
return new Result(Code.Error, "Îļþ¸üÐÂʧ°Ü");
|
return new Result<string>(code);
|
}
|
|
#endregion
|
|
#region ɾ³ýÎļþ
|
|
/// <summary>
|
/// ɾ³ýÎļþ
|
/// </summary>
|
[Route("DeleteFile")]
|
[HttpDelete]
|
public Result DeleteFile(string FileName)
|
{
|
if (string.IsNullOrEmpty(FileName))
|
{
|
return new Result(Code.Error, "FileName ²ÎÊý´íÎó");
|
}
|
var bol = FileHelper.Delete(FileName);
|
return new Result<bool>(bol);
|
}
|
|
/// <summary>
|
/// ɾ³ý×ÓÎļþÏÂÎļþ
|
/// </summary>
|
[Route("DeleteSubFile")]
|
[HttpDelete]
|
public Result DeleteSubFile(string Sub, string FileName)
|
{
|
if (string.IsNullOrEmpty(Sub))
|
{
|
return new Result(Code.Error, "Sub ²ÎÊý´íÎó");
|
}
|
if (string.IsNullOrEmpty(FileName))
|
{
|
return new Result(Code.Error, "FileName ²ÎÊý´íÎó");
|
}
|
var bol = FileHelper.Delete(Sub, FileName);
|
return new Result<bool>(bol);
|
}
|
|
#endregion
|
|
#region »ñÈ¡Url
|
|
/// <summary>
|
/// »ñÈ¡ÎļþUrl
|
/// </summary>
|
[Route("GetFileUrl")]
|
[HttpGet]
|
public Result GetFileUrl(string FileName)
|
{
|
if (string.IsNullOrEmpty(FileName))
|
{
|
return new Result(Code.Alert, "FileName ²ÎÊý´íÎó");
|
}
|
var url = $"http://{HttpContext.Request.Host}/{FileHelper.GetRelatedFilePath(FileName)}";
|
return new Result<string>(url);
|
}
|
|
/// <summary>
|
/// »ñÈ¡×ÓÎļþ¼ÐϵÄÎļþUrl
|
/// </summary>
|
[Route("GetSubFileUrl")]
|
[HttpGet]
|
public Result GetSubFileUrl(string Sub, string FileName)
|
{
|
if (string.IsNullOrEmpty(FileName))
|
{
|
return new Result(Code.Alert, "FileName ²ÎÊý´íÎó");
|
}
|
var url = $"http://{HttpContext.Request.Host}/{FileHelper.GetRelatedFilePath(Sub, FileName)}";
|
return new Result<string>(url);
|
}
|
|
#endregion
|
|
|
}
|
}
|