Controllers/FileUploadController.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Text;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Tmp.Models;
namespace Tmp.Controllers;
[Route("upload")]
public class FileUploadController: Controller
{
private readonly string _uploadPath;// 设置文件上传的目标路径
private readonly long _maxFileSize;
private DownloadLimit _limit;
public FileUploadController(IOptions<Configuration> config,DownloadLimit limit)
{
_maxFileSize = config.Value.MaxFileSize;
_uploadPath = config.Value.UploadPath;
_limit = limit;
}
[HttpPost("multiple/{hash}")]
public async Task<IActionResult> UploadMultipleFiles(List<IFormFile> files,int hash)
{
try
{
var builder = new StringBuilder();
long size = 0;
foreach (var formFile in files)
{
size += formFile.Length;
builder.Append(formFile.FileName+formFile.Length);
if (formFile.Length > _maxFileSize)
{
return BadRequest("至少存在一个文件,该文件体积过大");
}
}
if (size > _limit.CurrentDownload)
{
return BadRequest("达到文件上传限制,请尝试小的文件,或者联系管理员.");
}
//builder.Append(DateTime.Now.Hour);
var calHash = builder.ToString().GetHashCode();
if (calHash != hash)
{
return BadRequest("不允许非法上传文件");
}
if(Directory.Exists(Path.Combine(_uploadPath,""+calHash)))
{
// 无需上传,已经存在相关文件组
}
else
{
foreach (var file in files)
{
if (file.Length > 0)
{
var filePath = Path.Combine(_uploadPath,""+calHash, file.FileName);
var directoryPath = Path.GetDirectoryName(filePath);
后面还有 22 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
