/// <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; })); }
/// <summary> /// 上传单张图片 /// </summary> /// <returns></returns> public string UploadImage(string openId) { long size = 0; var files = Request.Form.Files; string resultFileId = null; BaseResponseModel <string> responseModel = new BaseResponseModel <string>(); try { foreach (var file in files) { 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}" }; } ParamsCreate3Img params3Img = new ParamsCreate3Img() { FileName = filename, FileDir = ConstantProperty.AlbumDir }; params3Img.OnFinish += fileModel => { new MongoDBTool().GetMongoCollection <FileModel <string[]> >("FileModel").InsertOne(fileModel); resultFileId = fileModel.FileID.ToString(); }; //ThreadPool.QueueUserWorkItem(new WaitCallback(ImageTool.Create3Img), params3Img); new Thread(new ParameterizedThreadStart(ImageTool.Create3Img)).Start(params3Img); } responseModel.StatusCode = (int)ActionParams.code_ok; } catch (Exception) { responseModel.StatusCode = (int)ActionParams.code_error; } responseModel.JsonData = resultFileId; //return JsonConvert.SerializeObject(responseModel); 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; }); }
/// <summary> /// 保存商品图片 /// </summary> /// <param name="goodsType"></param> /// <param name="picType"></param> /// <param name="files"></param> /// <param name="hostingEnvironment"></param> internal void SaveGoodsFiles(int goodsType, int picType, IFormFileCollection files, IHostingEnvironment hostingEnvironment) { long size = 0; foreach (var file in files) { 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}" }; } var goodsPicCollection = mongo.GetMongoCollection<GoodsPic>(); var goodsPic = goodsPicCollection.Find(x => x.GoodsClass == (GoodsClass)goodsType).FirstOrDefault(); if (goodsPic == null) { goodsPic = new GoodsPic() { GoodsClass = (GoodsClass)goodsType }; goodsPicCollection.InsertOne(goodsPic); } if (goodsPic.HeaderPics == null) { goodsPicCollection.UpdateOne(x => x.GoodsPicID.Equals(goodsPic.GoodsPicID), Builders<GoodsPic>.Update.Set(x => x.HeaderPics, new List<FileModel<string[]>>())); } if (goodsPic.BodyPics == null) { goodsPicCollection.UpdateOne(x => x.GoodsPicID.Equals(goodsPic.GoodsPicID), Builders<GoodsPic>.Update.Set(x => x.BodyPics, new List<FileModel<string[]>>())); } ParamsCreate3Img params3Img = new ParamsCreate3Img() { FileName = filename, FileDir = ConstantProperty.GoodsImagesDir }; params3Img.OnFinish += fileModel => { fileModel.FileID = ObjectId.GenerateNewId(); if (picType == 0) { var update = Builders<GoodsPic>.Update.Push(x => x.HeaderPics, fileModel); goodsPicCollection.UpdateOne(x => x.GoodsPicID.Equals(goodsPic.GoodsPicID), update); } else { var update = Builders<GoodsPic>.Update.Push(x => x.BodyPics, fileModel); goodsPicCollection.UpdateOne(x => x.GoodsPicID.Equals(goodsPic.GoodsPicID), update); } mongo.GetMongoCollection<FileModel<string[]>>("FileModel").InsertOne(fileModel); }; //ThreadPool.QueueUserWorkItem(new WaitCallback(ImageTool.Create3Img), params3Img); new Thread(new ParameterizedThreadStart(ImageTool.Create3Img)).Start(params3Img); } }