/// <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; })); }
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; }); }