/// <summary> /// 图片上传地址 /// </summary> /// <param name="maxWidth">最大宽度</param> /// <param name="maxHeight">最大高度</param> /// <param name="identifying">标识</param> /// <param name="urlStr">地址</param> /// <returns></returns> public ActionResult ImageUploadToAli() { string _SImage = string.Empty; Exception ex = null; if (Request.Files.Count > 0) { var Imgfile = Request.Files[0]; try { var ext = Path.GetExtension(Imgfile.FileName); var client = new WcfClinet <IFileUpload>(); var ImageFilePath = swc.WebConfigurationManager.AppSettings["UploadDoMain_image"] + Guid.NewGuid().ToString() + ext; _SImage = ImageFilePath + Guid.NewGuid().ToString() + ext; var buffer = new byte[Imgfile.ContentLength]; Imgfile.InputStream.Read(buffer, 0, buffer.Length); var result_2 = client.InvokeWcfClinet(w => w.UploadImage(_SImage, buffer, 0, 0)); } catch (Exception error) { ex = error; } } return(Json(new { SImage = swc.WebConfigurationManager.AppSettings["UploadDoMain"] + _SImage, Msg = ex == null ? "上传成功" : ex.Message }, "text/html")); }
public JsonResult UploadImage(string path, string name, string key) { int result = 0; string imageUrl = string.Empty; Exception ex = null; if (Request.Files.Count > 0) { var Imgfile = Request.Files[0]; try { var exttension = Path.GetExtension(Imgfile.FileName); name = (name ?? Guid.NewGuid().ToString()) + exttension; imageUrl = path + name; var client = new WcfClinet <IFileUpload>(); var buffer = new byte[Imgfile.ContentLength]; Imgfile.InputStream.Read(buffer, 0, buffer.Length); result = client.InvokeWcfClinet(w => w.UploadImage(imageUrl, buffer, 0, 0)); } catch (Exception error) { ex = error; } } return(Json(new { Url = imageUrl, Name = name, Msg = result > 0 ? "上传成功" : ex?.Message, Key = key })); }
public async Task <JsonResult> BatchSaveByExcel() { JsonResult jr = new JsonResult(); if (Request.Files.Count == 0) { jr.Data = new { code = 0, msg = "未选择Excel文件" }; return(jr); } var file = Request.Files[0]; var ext = System.IO.Path.GetExtension(file.FileName); string fileType = ".xls,.xlsx"; if (!fileType.Contains(ext)) { jr.Data = new { code = 0, msg = "文件格式不正确" }; return(jr); } int filesize = file.ContentLength; string fileName = System.IO.Path.GetFileNameWithoutExtension(file.FileName) + HttpContext.User.Identity.Name + DateTime.Now.ToString("yyyyMMddhhmmss") + ext; var virtualPath = "/product/excel/"; var domainPath = swc.WebConfigurationManager.AppSettings["DoMain_news"]; var serverPath = virtualPath + fileName;//http://file.tuhu.test/vehicletype/excel/aaa.xls string savePath = domainPath + serverPath; byte[] input = new byte[filesize]; var fileStream = file.InputStream; fileStream.Read(input, 0, filesize); var client = new WcfClinet <IFileUpload>(); var result = client.InvokeWcfClinet(w => w.UploadFile(serverPath, input)); var table = new DataTable(); XSSFWorkbook wb1; HSSFWorkbook wb2; //var sw = new Stopwatch(); var bytes = StreamToBytes(file.InputStream); using (MemoryStream memstream = new MemoryStream(bytes)) { //file.InputStream.CopyTo(memstream); //memstream.Position = 0; // <-- Add this, to make it work if (fileName.EndsWith(".xlsx")) { wb1 = new XSSFWorkbook(memstream); table = GetExcelData(wb1); } else if (fileName.EndsWith(".xls")) { wb2 = new HSSFWorkbook(memstream); table = GetExcelData(wb2); } } Func <string, InstallmentType?> gettype = v => { if (string.Equals(v?.Trim(), "途虎")) { return(InstallmentType.Tuhu); } if (string.Equals(v?.Trim(), "用户")) { return(InstallmentType.User); } return(null); }; if (table != null && table.Rows.Count > 0) { if (table.Rows.Count > 500) { jr.Data = new { code = 0, msg = "一次只能上传最多500条配置" }; return(jr); } var models = table.AsEnumerable().Select(r => { var three = gettype(r[1]?.ToString()); var six = gettype(r[2]?.ToString()); var twelve = gettype(r[3]?.ToString()); if (three != null && six != null && twelve != null) { var model = new TireInstallmentModel() { PID = r[0]?.ToString(), ThreePeriods = three.Value, SixPeriods = six.Value, TwelvePeriods = twelve.Value, IsInstallmentOpen = true }; return(model); } return(null); }); int errorcount = models.Where(x => x == null).Count(); int successcount = 0; var results = Parallel.ForEach <TireInstallmentModel>(models, new ParallelOptions() { MaxDegreeOfParallelism = 10 }, async(x) => { if (await CreateOrUpdateTireInstallmentAsync(x)) { successcount++; } else { errorcount++; } System.Threading.Thread.Sleep(300); } ); jr.Data = new { code = 1, msg = $"成功导入{successcount}个,失败:{errorcount}个" }; } return(jr); }