关于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");
           
        }

转载于:https://www.cnblogs.com/forbetterzhu/archive/2012/04/24/2468435.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值