|
@@ -7,15 +7,9 @@ using Masuit.Tools.Files;
|
|
|
using Masuit.Tools.Logging;
|
|
using Masuit.Tools.Logging;
|
|
|
using Masuit.Tools.Security;
|
|
using Masuit.Tools.Security;
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
-using Microsoft.AspNetCore.Hosting;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using Polly;
|
|
using Polly;
|
|
|
-using System;
|
|
|
|
|
-using System.Collections.Generic;
|
|
|
|
|
-using System.IO;
|
|
|
|
|
-using System.Linq;
|
|
|
|
|
using System.Text;
|
|
using System.Text;
|
|
|
-using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace Masuit.MyBlogs.Core.Controllers
|
|
namespace Masuit.MyBlogs.Core.Controllers
|
|
|
{
|
|
{
|
|
@@ -26,8 +20,9 @@ namespace Masuit.MyBlogs.Core.Controllers
|
|
|
public class FileController : AdminController
|
|
public class FileController : AdminController
|
|
|
{
|
|
{
|
|
|
public IWebHostEnvironment HostEnvironment { get; set; }
|
|
public IWebHostEnvironment HostEnvironment { get; set; }
|
|
|
|
|
+
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- ///
|
|
|
|
|
|
|
+ ///
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
public ISevenZipCompressor SevenZipCompressor { get; set; }
|
|
public ISevenZipCompressor SevenZipCompressor { get; set; }
|
|
|
|
|
|
|
@@ -131,6 +126,7 @@ namespace Masuit.MyBlogs.Core.Controllers
|
|
|
type = "file"
|
|
type = "file"
|
|
|
})));
|
|
})));
|
|
|
break;
|
|
break;
|
|
|
|
|
+
|
|
|
case "remove":
|
|
case "remove":
|
|
|
req.Items.ForEach(s =>
|
|
req.Items.ForEach(s =>
|
|
|
{
|
|
{
|
|
@@ -149,6 +145,7 @@ namespace Masuit.MyBlogs.Core.Controllers
|
|
|
success = "true"
|
|
success = "true"
|
|
|
});
|
|
});
|
|
|
break;
|
|
break;
|
|
|
|
|
+
|
|
|
case "rename":
|
|
case "rename":
|
|
|
case "move":
|
|
case "move":
|
|
|
string newpath;
|
|
string newpath;
|
|
@@ -185,6 +182,7 @@ namespace Masuit.MyBlogs.Core.Controllers
|
|
|
success = "true"
|
|
success = "true"
|
|
|
});
|
|
});
|
|
|
break;
|
|
break;
|
|
|
|
|
+
|
|
|
case "copy":
|
|
case "copy":
|
|
|
if (!string.IsNullOrEmpty(req.Item))
|
|
if (!string.IsNullOrEmpty(req.Item))
|
|
|
{
|
|
{
|
|
@@ -200,6 +198,7 @@ namespace Masuit.MyBlogs.Core.Controllers
|
|
|
success = "true"
|
|
success = "true"
|
|
|
});
|
|
});
|
|
|
break;
|
|
break;
|
|
|
|
|
+
|
|
|
case "edit":
|
|
case "edit":
|
|
|
new FileInfo(Path.Combine(root, req.Item.TrimStart('\\', '/'))).ShareReadWrite().WriteAllText(req.Content, Encoding.UTF8);
|
|
new FileInfo(Path.Combine(root, req.Item.TrimStart('\\', '/'))).ShareReadWrite().WriteAllText(req.Content, Encoding.UTF8);
|
|
|
list.Add(new
|
|
list.Add(new
|
|
@@ -207,20 +206,25 @@ namespace Masuit.MyBlogs.Core.Controllers
|
|
|
success = "true"
|
|
success = "true"
|
|
|
});
|
|
});
|
|
|
break;
|
|
break;
|
|
|
|
|
+
|
|
|
case "getContent":
|
|
case "getContent":
|
|
|
return Json(new
|
|
return Json(new
|
|
|
{
|
|
{
|
|
|
result = new FileInfo(Path.Combine(root, req.Item.TrimStart('\\', '/'))).ShareReadWrite().ReadAllText(Encoding.UTF8)
|
|
result = new FileInfo(Path.Combine(root, req.Item.TrimStart('\\', '/'))).ShareReadWrite().ReadAllText(Encoding.UTF8)
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
case "createFolder":
|
|
case "createFolder":
|
|
|
list.Add(new
|
|
list.Add(new
|
|
|
{
|
|
{
|
|
|
success = Directory.CreateDirectory(Path.Combine(root, req.NewPath.TrimStart('\\', '/'))).Exists.ToString()
|
|
success = Directory.CreateDirectory(Path.Combine(root, req.NewPath.TrimStart('\\', '/'))).Exists.ToString()
|
|
|
});
|
|
});
|
|
|
break;
|
|
break;
|
|
|
|
|
+
|
|
|
case "changePermissions":
|
|
case "changePermissions":
|
|
|
|
|
+
|
|
|
//todo:文件权限修改
|
|
//todo:文件权限修改
|
|
|
break;
|
|
break;
|
|
|
|
|
+
|
|
|
case "compress":
|
|
case "compress":
|
|
|
var filename = Path.Combine(Path.Combine(root, req.Destination.TrimStart('\\', '/')), Path.GetFileNameWithoutExtension(req.CompressedFilename) + ".zip");
|
|
var filename = Path.Combine(Path.Combine(root, req.Destination.TrimStart('\\', '/')), Path.GetFileNameWithoutExtension(req.CompressedFilename) + ".zip");
|
|
|
SevenZipCompressor.Zip(req.Items.Select(s => Path.Combine(root, s.TrimStart('\\', '/'))), filename);
|
|
SevenZipCompressor.Zip(req.Items.Select(s => Path.Combine(root, s.TrimStart('\\', '/'))), filename);
|
|
@@ -229,10 +233,11 @@ namespace Masuit.MyBlogs.Core.Controllers
|
|
|
success = "true"
|
|
success = "true"
|
|
|
});
|
|
});
|
|
|
break;
|
|
break;
|
|
|
|
|
+
|
|
|
case "extract":
|
|
case "extract":
|
|
|
var folder = Path.Combine(Path.Combine(root, req.Destination.TrimStart('\\', '/')), req.FolderName.Trim('/', '\\'));
|
|
var folder = Path.Combine(Path.Combine(root, req.Destination.TrimStart('\\', '/')), req.FolderName.Trim('/', '\\'));
|
|
|
var zip = Path.Combine(root, req.Item.TrimStart('\\', '/'));
|
|
var zip = Path.Combine(root, req.Item.TrimStart('\\', '/'));
|
|
|
- SevenZipCompressor.Extract(zip, folder);
|
|
|
|
|
|
|
+ SevenZipCompressor.Decompress(zip, folder);
|
|
|
list.Add(new
|
|
list.Add(new
|
|
|
{
|
|
{
|
|
|
success = "true"
|
|
success = "true"
|
|
@@ -293,4 +298,4 @@ namespace Masuit.MyBlogs.Core.Controllers
|
|
|
throw new NotFoundException("文件未找到");
|
|
throw new NotFoundException("文件未找到");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+}
|