Пример #1
0
        /// <summary>
        /// 用户上传照片
        /// </summary>
        /// <param name="accountID">账户ID</param>
        /// <param name="file"></param>
        /// <returns></returns>
        internal async Task <string> SaveOneFile(ObjectId accountID, IFormFile file)
        {
            string resultFileId = "";

            long size = 0;

            var filename = ContentDispositionHeaderValue
                           .Parse(file.ContentDisposition)
                           .FileName
                           .Trim('"');
            string saveDir   = $@"{ConstantProperty.BaseDir}{ConstantProperty.AlbumDir}";
            string dbSaveDir = $@"{ConstantProperty.AlbumDir}";

            if (!Directory.Exists(saveDir))
            {
                Directory.CreateDirectory(saveDir);
            }
            string exString = filename.Substring(filename.LastIndexOf("."));
            string saveName = Guid.NewGuid().ToString("N");

            filename = $@"{saveDir}{saveName}{exString}";

            size += file.Length;
            FileModel <string[]> fileCard = new FileModel <string[]>();

            using (FileStream fs = System.IO.File.Create(filename))
            {
                file.CopyTo(fs);
                fs.Flush();
                string[] fileUrls = new string[] { $@"{dbSaveDir}{saveName}{exString}" };
            }
            var accountCollection = mongo.GetMongoCollection <AccountModel>();
            var account           = accountCollection.Find(x => x.AccountID.Equals(accountID)).FirstOrDefault();

            if (account.UploadImages == null)
            {
                accountCollection.UpdateOne(x => x.AccountID.Equals(accountID), Builders <AccountModel> .Update.Set(x => x.UploadImages, new List <FileModel <string[]> >()));
            }

            //ThreadPool.QueueUserWorkItem(new WaitCallback(ImageTool.Create3Img), params3Img);
            return(await Task.Run(() => {
                ParamsCreate3Img params3Img = new ParamsCreate3Img()
                {
                    FileName = filename, FileDir = ConstantProperty.AlbumDir
                };
                params3Img.OnFinish += fileModel =>
                {
                    fileModel.FileID = ObjectId.GenerateNewId();
                    accountCollection.UpdateOne(x => x.AccountID.Equals(accountID),
                                                Builders <AccountModel> .Update.Push(x => x.UploadImages, fileModel));
                    //mongo.GetMongoCollection<FileModel<string[]>>("FileModel").InsertOne(fileModel);
                    resultFileId = fileModel.FileID.ToString();
                };
                ImageTool.Create3Img(params3Img);
                return resultFileId;
            }));
        }
 private async Task <long> SaveImages(List <IFormFile> sourceImages, List <FileModel <string[]> > container)
 {
     return(await Task.Run(() =>
     {
         long size = 0;
         foreach (var file in sourceImages)
         {
             var filename = ContentDispositionHeaderValue
                            .Parse(file.ContentDisposition)
                            .FileName
                            .Trim('"');
             string saveDir = $@"{ConstantProperty.BaseDir}{ConstantProperty.GoodsImagesDir}";
             if (!Directory.Exists(saveDir))
             {
                 Directory.CreateDirectory(saveDir);
             }
             filename = filename.Substring(filename.LastIndexOf("."));
             string saveName = ConstantProperty.GoodsImagesDir + ObjectId.GenerateNewId().ToString() + $@"{filename}";
             filename = ConstantProperty.BaseDir + saveName;
             size += file.Length;
             using (FileStream fs = System.IO.File.Create(filename))
             {
                 file.CopyTo(fs);
                 fs.Flush();
             }
             ParamsCreate3Img params3Img = new ParamsCreate3Img()
             {
                 FileName = filename, FileDir = ConstantProperty.GoodsImagesDir
             };
             params3Img.OnFinish += fileModel =>
             {
                 if (fileModel.FileID == ObjectId.Empty)
                 {
                     fileModel.FileID = ObjectId.GenerateNewId();
                 }
                 container.Add(fileModel);
             };
             //ThreadPool.QueueUserWorkItem(new WaitCallback(ImageTool.Create3Img), params3Img);
             //Thread thread = new Thread(new ParameterizedThreadStart(ImageTool.Create3Img));
             //thread.IsBackground = false;
             //thread.Start(params3Img);
             ImageTool.Create3Img(params3Img);
         }
         return size;
     }));
 }
 private async Task <long> SaveImage(IFormFile listImage)
 {
     return(await Task.Run(() =>
     {
         long size = 0;
         if (listImage != null)
         {
             var filename = ContentDispositionHeaderValue
                            .Parse(listImage.ContentDisposition)
                            .FileName
                            .Trim('"');
             string saveDir = $@"{ConstantProperty.BaseDir}{ConstantProperty.GoodsImagesDir}";
             if (!Directory.Exists(saveDir))
             {
                 Directory.CreateDirectory(saveDir);
             }
             filename = filename.Substring(filename.LastIndexOf("."));
             string saveName = ConstantProperty.GoodsImagesDir + ObjectId.GenerateNewId().ToString() + $@"{filename}";
             filename = ConstantProperty.BaseDir + saveName;
             size += listImage.Length;
             using (FileStream fs = System.IO.File.Create(filename))
             {
                 listImage.CopyTo(fs);
                 fs.Flush();
             }
             ParamsCreate3Img params3Img = new ParamsCreate3Img()
             {
                 FileName = filename, FileDir = ConstantProperty.GoodsImagesDir
             };
             params3Img.OnFinish += fileModel =>
             {
                 if (fileModel.FileID == ObjectId.Empty)
                 {
                     fileModel.FileID = ObjectId.GenerateNewId();
                 }
                 GoodsModel.GoodsListImage = fileModel;
             };
             ImageTool.Create3Img(params3Img);
         }
         return size;
     }));
 }
Пример #4
0
        internal async Task<string> SavePlanGoodsListPic(IFormFile file)
        {
            string resultFileId = "";

            long size = 0;

            var filename = ContentDispositionHeaderValue
                                  .Parse(file.ContentDisposition)
                                  .FileName
                                  .Trim('"');
            string saveDir = $@"{ConstantProperty.BaseDir}{ConstantProperty.GoodsImagesDir}";
            string dbSaveDir = $@"{ConstantProperty.GoodsImagesDir}";
            if (!Directory.Exists(saveDir))
            {
                Directory.CreateDirectory(saveDir);
            }
            string exString = filename.Substring(filename.LastIndexOf("."));
            string saveName = Guid.NewGuid().ToString("N");
            filename = $@"{saveDir}{saveName}{exString}";

            size += file.Length;
            FileModel<string[]> fileCard = new FileModel<string[]>();
            using (FileStream fs = System.IO.File.Create(filename))
            {
                file.CopyTo(fs);
                fs.Flush();
                string[] fileUrls = new string[] { $@"{dbSaveDir}{saveName}{exString}" };
            }
            return await Task.Run(() => {
                ParamsCreate3Img params3Img = new ParamsCreate3Img() { FileName = filename, FileDir = ConstantProperty.GoodsImagesDir };
                params3Img.OnFinish += fileModel =>
                {
                    mongo.GetMongoCollection<FileModel<string[]>>("FileModel").InsertOne(fileModel);
                    resultFileId = fileModel.FileID.ToString();
                };
                ImageTool.Create3Img(params3Img);
                return resultFileId;
            });
        }