关于remoting上传文件并根据不同的用户创建不同的文件夹来存放文件
public string Save(string groupName, string fileName, bool replace, string contentType, byte[] buffer,string name)
{
FilesManagerConfiguration fmgConfig = GetConfig();
if (!Directory.Exists(fmgConfig.UploadPath))
{
return null;
}
if (!fmgConfig.GroupTable.Contains(groupName))
{
return null;
}
FilesGroupConfiguration fileGroup = fmgConfig.GroupTable[groupName];
string uploadFolder = Path.Combine(fmgConfig.UploadPath, fileGroup.Folder);
//组类别目录
if (!Directory.Exists(uploadFolder))
{
Directory.CreateDirectory(uploadFolder);
}
string fileExt = Path.GetExtension(fileName);
if (!fileGroup.MimeTable.Contains(fileExt.ToLower()))
{
return null;
}
MimeFolderData mimeFolderData = fileGroup.MimeTable[fileExt.ToLower()];
// string curFolder = Path.Combine(uploadFolder, mimeFolderData.Folder);
string curFolder = Path.Combine(uploadFolder,name);
if (!Directory.Exists(curFolder))
{
Directory.CreateDirectory(curFolder);
}
string lastFileName = fileName;
string fileSaveFullName = Path.Combine(curFolder, fileName);
if (File.Exists(fileSaveFullName) && !replace)
{
lastFileName = string.Format("{0}.{1}", Path.GetRandomFileName(), fileName);
fileSaveFullName = Path.Combine(curFolder, lastFileName);
}
using (FileStream fileStream = new FileStream(fileSaveFullName, FileMode.Create))
{
fileStream.Write(buffer, 0, buffer.Length);
}
string urlPath = fmgConfig.PublishPath;
if (!urlPath.EndsWith("/"))
urlPath += "/";
return string.Format(@"{0}{1}/{2}/{3}/{4}", urlPath, groupName, mimeFolderData.Folder, lastFileName,"zz");
}