当前位置:网站首页>在.net core中,利用C#实现fastdfs多文件批量上传
在.net core中,利用C#实现fastdfs多文件批量上传
2022-08-08 10:00:00 【饮水思源09】
在.net core中,利用C#实现fastdfs多文件批量上传
/// <summary>
/// 上传附件
/// </summary>
/// <returns></returns>
[RequestSizeLimit(1073741824)]
[HttpPost]
[Route("FileUpLoad")]
public ActionResult<IEnumerable<string>> UpLoadFile([FromForm]IFormCollection formCollection, string id)
{
try
{
bool flag = false;
//获取FormData中多文件信息
Microsoft.AspNetCore.Http.Internal.FormFileCollection filelist = (FormFileCollection)formCollection.Files;
foreach (var item in filelist)
{
if (item != null)
{
var storageNode = FileServerInit.GetStorageNode();
string type = item.FileName.Split(".").Last();
byte[] content = null;
//将文件转换为字节流
Stream fs = item.OpenReadStream();
using (BinaryReader reader = new BinaryReader(fs))
{
content = reader.ReadBytes((int)fs.Length);
}
string fileSize = FileServerInit.GetFileSize(content.Length);
string filePath = FastDFSClient.UploadFile(storageNode, content, type);
//........
}
}
//返回结果
}
catch (Exception e)
{
//异常处理
}
}
//文件初始化
public class FileServerInit
{
/// <summary>
/// 获取存储节点
/// </summary>
/// <returns></returns>
public static StorageNode GetStorageNode()
{
//===========================初始化========================================
var trackerIPs = new List<IPEndPoint>();
// 只能指定IP,设置域名需要其他方式作为转换
string IP = FileServer.GetFileServerIpAddress();
var endPoint = new IPEndPoint(IPAddress.Parse(IP), 22122);
trackerIPs.Add(endPoint);
ConnectionManager.Initialize(trackerIPs);
return FastDFSClient.GetStorageNode("group1");
}
//获取文件大小
public static string GetFileSize(long size)
{
var num = 1024.00; //byte
if (size < num)
return size + "B";
if (size < Math.Pow(num, 2))
return (size / num).ToString("f2") + "KB"; //kb
if (size < Math.Pow(num, 3))
return (size / Math.Pow(num, 2)).ToString("f2") + "MB"; //M
if (size < Math.Pow(num, 4))
return (size / Math.Pow(num, 3)).ToString("f2") + "G"; //G
return (size / Math.Pow(num, 4)).ToString("f2") + "TB"; //T
}
}
边栏推荐
猜你喜欢
随机推荐
小散量化炒股记|打包Py可执行文件,双击就能选出全市场稳步上扬的股票
hdu4635 Strongly connected(tarjan计算强连通通分量+缩点+思想)
xgboost 加速
flink sql创建表成功,查询却报错block data,大家有没有碰到这现象
使用.NET简单实现一个Redis的高性能克隆版(三)
软考证书含金量
Detailed Explanation of Gradient Vanishing and Gradient Explosion Problems
让百姓消费更安全更放心更满意 江苏出台放心消费创建示范认定管理办法
AI引领一场新的科学革命
巧用Prometheus来扩展kubernetes调度器
面试突击72:输入URL之后会执行什么流程?
STL underlying implementation principle
hdu4635 Strongly connected (tarjan calculates strongly connected components + shrink points + ideas)
2022 - image classification 】 【 MaxViT ECCV
VPP静态映射实现DNAT
22-08-06 Xi'an EasyExcel implements dictionary table import and export
移动端/嵌入式-CV模型-2019:MobelNets-v3
左益豪:用代码创造一个新世界|OneFlow U
移动端/嵌入式-CV模型-2018:MobelNets-v2
ACWing 198. Antiprime Problem Solution