C# 上传辅助方法

#region <<上传相关辅助方法>>
/// <summary>
/// 上传图片
/// </summary>
/// <param name="ImageNames">图片名称集合</param>
/// <param name="base64">图片base64位</param>
/// <param name="pid">对象主键</param>
/// <param name="username">用户名</param>
/// <param name="sjzd">数据字典</param>
/// <param name="ImageType">图片类型</param>
/// <returns></returns>
public bool ImageUpload(string ImageNames, string base64, string pid, string username, string sjzd, string ImageType)
{
bool isUpload = true;
try
{
string year = DateTime.Now.Year.ToString().Substring(2, 2);
string month = DateTime.Now.ToString("MM");
var ImageNameList = ImageNames.TrimEnd(',').Split(',');
var ImagesList = base64.TrimEnd(',').Split(',');
string ImageStrPath = System.Configuration.ConfigurationManager.AppSettings["_plugin_FileCab_uploadPath"].ToString();
string ImagePath = "/" + sjzd + "/" + year + month;
string strPath = ImageStrPath + ImagePath;
//判断文件路径是否存在,不存在则创建文件夹
if (!System.IO.Directory.Exists(@strPath))
{
System.IO.Directory.CreateDirectory(@strPath);//不存在就创建目录
}
if (ImagesList.Count() <= 9)
{
for (int i = 0; i < ImagesList.Count(); i++)
{
string dummyData = ImagesList[i].Trim().Replace("%", "").Replace(",", "").Replace(" ", "+");
byte[] arr = Convert.FromBase64String(dummyData);
var guid = Guid.NewGuid().ToString();
string ImageName = ImageNameList[i].ToString().Split('.')[0];//文件的名称
var file_content = new BLDevPlatform.Web.Models.file_content
{
CONTENT_ID = guid,
SORT_ID = pid,
SUBJECT = ImageNameList[i],
SEND_TIME = DateTime.Now,
CONTENT_NO = 0,
CREATER = username,
CONTENT = "1",
ATTACHMENT_ID = "1",
ATTACHMENT_NAME = "1",
ATTACHMENT_DESC = "1",
USER_ID = "1",
NEW_PERSON = "1",
READERS = "1",
LOGS = "1",
KEYWORD = "1"
};
_repo.Insert(file_content);
var fileguid = Guid.NewGuid().ToString();
var attchfile = new BLDevPlatform.Web.Models.SYS_ATTACHMENTS
{
Id = fileguid,
CreateUser = username,
Attachment = "",
Description = "",
Filesize = 0,
Downloads = 0,
Width = 0,
Height = 0,
Attachprice = 0,
Pid = guid,
Username = username,
Filepath = ImagePath + "/" + Guid.NewGuid().ToString() + "." + ImageNameList[i],
Filename = ImageNameList[i],
Filetype = ImageType,
Createdate = DateTime.Now,
State = "0"
};
MemoryStream ms = new MemoryStream(arr);
Bitmap bmp = new Bitmap(ms);
bmp.Save(ImageStrPath + "/" + attchfile.Filepath, System.Drawing.Imaging.ImageFormat.Png);
ms.Close();
_repo.Insert(attchfile);
}
}
else
{
isUpload = false;
}
}
catch (Exception ex)
{
isUpload = false;
}
return isUpload;
}


/// <summary>
/// 上传文件
/// </summary>
/// <param name="fileNames">上传文件名用逗号分隔</param>
/// <param name="base64">base64位用逗号分隔</param>
/// <param name="pid">保存对象主键</param>
/// <param name="userName">用户名</param>
/// <param name="sjzd">数据字典名称</param>
/// <param name="FileType">上传文件类型</param>
/// <returns></returns>
public bool FileUpload(string fileNames, string base64, string pid, string userName, string sjzd, string FileType)
{
bool isUpload = true;
try
{
string year = DateTime.Now.Year.ToString().Substring(2, 2);
string month = DateTime.Now.ToString("MM");
var fileNameList = fileNames.TrimEnd(',').Split(',');
var filesList = base64.TrimEnd(',').Split(',');
string filestrPath = System.Configuration.ConfigurationManager.AppSettings["_plugin_FileCab_uploadPath"].ToString();
string filePath = "/" + sjzd + "/" + year + month;
string strFilePath = filestrPath + filePath;
//判断文件路径是否存在,不存在则创建文件夹
if (!System.IO.Directory.Exists(@strFilePath))
{
System.IO.Directory.CreateDirectory(@strFilePath);//不存在就创建目录
}
if (filesList.Count() <= 9)
{
for (int i = 0; i < filesList.Count(); i++)
{
string dummyData = filesList[i].Trim().Replace("%", "").Replace(",", "").Replace(" ", "+");
byte[] arr = Convert.FromBase64String(dummyData);
var guid = Guid.NewGuid().ToString();
string fileName = fileNameList[i].ToString().Split('.')[0];//文件的名称
var file_content = new BLDevPlatform.Web.Models.file_content
{
CONTENT_ID = guid,
SORT_ID = pid,
SUBJECT = fileNameList[i],
SEND_TIME = DateTime.Now,
CONTENT_NO = 0,
CREATER = userName,
CONTENT = "1",
ATTACHMENT_ID = "1",
ATTACHMENT_NAME = "1",
ATTACHMENT_DESC = "1",
USER_ID = "1",
NEW_PERSON = "1",
READERS = "1",
LOGS = "1",
KEYWORD = "1"
};
_repo.Insert(file_content);
var fileguid = Guid.NewGuid().ToString();
var attchfile = new BLDevPlatform.Web.Models.SYS_ATTACHMENTS
{
Id = fileguid,
CreateUser = userName,
Attachment = "",
Description = "",
Filesize = 0,
Downloads = 0,
Width = 0,
Height = 0,
Attachprice = 0,
Pid = guid,
Username = userName,
Filepath = filePath + "/" + Guid.NewGuid().ToString() + "." + fileNameList[i],
Filename = fileNameList[i],
Filetype = FileType,
Createdate = DateTime.Now,
State = "0"
};
FileStream pFileStream = null;
pFileStream = File.Create(filestrPath + "\" + attchfile.Filepath, arr.Length);
pFileStream.Write(arr, 0, arr.Length);
pFileStream.Close();
_repo.Insert(attchfile);
}
}
else
{
isUpload = false;
}
}
catch (Exception ex)
{
isUpload = false;
}
return isUpload;
}
#endregion

原文地址:https://www.cnblogs.com/lovecwq/p/13182928.html