public async Task <ActionResult> Create(ImageEditViewModel model) { if (DoesCodeAlreadyExist(model.Image)) { ModelState.AddModelError("Image.ImageCode", ImageStrings.CodeAlreadyExists); } if (ModelState.IsValid) { if (model.ImageUpload != null) { var fileName = Guid.NewGuid().ToString(); var path = Server.MapPath("~/Public/Images/"); FileUploadHelper.GenerateVersions(model.ImageUpload.InputStream, path + fileName); model.Image.ImageUrl = fileName; } model.Image.Keywords = db.Set <Keyword>() .Where(kw => model.KeywordIds.Contains(kw.Id)) .ToList(); db.Add(model.Image); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } model.PopulateDropDownLists(db.Set <Document>(), db.Set <Classification>(), db.Set <Keyword>()); return(View(model)); }
public SystemController(ISystemService systemService, FileUploadHelper fileUploadHelper, MvcHelper mvcHelper, SystemConfigModel configModel) { _systemService = systemService; _fileUploadHelper = fileUploadHelper; _mvcHelper = mvcHelper; _configModel = configModel; }
/// <summary> /// Fills the page. /// </summary> /// <param name="element">The element.</param> /// <param name="data">The data.</param> private void FillPage(IWebElement element, string data) { // Respect the data control interface first. // ReSharper disable once SuspiciousTypeConversion.Global var dataControlElement = element as IDataControl; if (dataControlElement != null) { dataControlElement.SetValue(data); return; } var tagName = element.TagName.ToLowerInvariant().Trim(); switch (tagName) { case "select": var selectElement = new SelectElement(element); if (selectElement.IsMultiple) { selectElement.DeselectAll(); } selectElement.SelectByText(data); break; case "input": // Special case for a checkbox control var inputType = element.GetAttribute("type"); if (string.Equals("checkbox", inputType, StringComparison.OrdinalIgnoreCase)) { bool checkValue; if (bool.TryParse(data, out checkValue) && element.Selected != checkValue) { new SeleniumPage(element, this.webDriver).ClickElement(element); } return; } if (string.Equals("radio", inputType, StringComparison.OrdinalIgnoreCase)) { // Need to click twice to select the element. new SeleniumPage(element, this.webDriver).ClickElement(element, 2); return; } if (string.Equals("file", inputType, StringComparison.OrdinalIgnoreCase)) { FileUploadHelper.UploadFile(data, element.SendKeys); return; } goto default; default: element.SendKeys(data); break; } }
public AttachmentController(IAttachmentService service, ILoginInfo loginInfo, FileUploadHelper fileUploadHelper, IOptionsMonitor <ModuleCommonOptions> iOptionsMonitor) { _service = service; _loginInfo = loginInfo; _fileUploadHelper = fileUploadHelper; _moduleCommonOptions = iOptionsMonitor.CurrentValue; }
public async Task <SpecialistWork> AddWork(int specialistId, IFormFile file, string description) { var works = context.SpecialistWorks.Where(m => m.SpecialistId == specialistId); if (works.Count() >= 10) { return(null); } var imagePath = await FileUploadHelper.UploadAsync(file, ImageOwnerEnum.Specialist); if (imagePath == string.Empty) { return(null); } var specialistWork = new SpecialistWork { SpecialistId = specialistId, ImagePath = imagePath, Description = description }; var result = await context.SpecialistWorks.AddAsync(specialistWork); await context.SaveChangesAsync(); return(result.Entity); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Title,ImageUrl,Price,Description,CategoryId")] Product product, IFormFile Image) { if (id != product.Id) { return(NotFound()); } var path = await FileUploadHelper.UploadAsync(Image); product.ImageUrl = path; if (ModelState.IsValid) { try { _context.Update(product); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProductExists(product.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["CategoryId"] = new SelectList(_context.Categories, "Id", "Title", product.CategoryId); return(View(product)); }
public ConfigController(IConfigService service, FileUploadHelper fileUploadHelper, IConfigProvider configProvider, IConfigCollection configCollection) { _service = service; _fileUploadHelper = fileUploadHelper; _configProvider = configProvider; _configCollection = configCollection; }
/// <summary> /// 检测文件是否符合要求 /// </summary> /// <param name="oFile"></param> /// <param name="iMaxSize"></param> /// <returns></returns> protected string CheckFile(string filename, int contentlength) { string err = ""; if (contentlength == 0) { err = "无数据提交"; } else if (MaxSize != 0 && MaxSize < contentlength / 1024) { if (MaxSize > 1024) { err = "文件大小限制为" + (MaxSize / 1024) + "MB以内"; } else { err = "文件大小限制为" + MaxSize + "KB以内"; } } else { if (!FileUploadHelper.CheckFileExt(filename, _sAllowType)) { err = "上传文件扩展名必需为:" + _sAllowType; } } return(err); }
public async Task <IActionResult> Edit(Post post, IFormFile uploadImg, string url) { try { string path = null; if (uploadImg != null) { path = await FileUploadHelper.UploadFile(uploadImg); post.ImageUrl = path; } else if (post.ImageUrl != url) { var pathUrl = await ImageLoader.DownloadFile(url); post.ImageUrl = pathUrl; } post.Date = DateTime.Now; await postService.UpdatePostAsync(post); return(RedirectToAction("Index")); } catch (Exception) { TempData["LinkError"] = "Invalid link"; } return(View()); }
public IHttpActionResult GetPreviewLinkInfo(string businessId) { var finder = PreviewRelationOperator.Instance.GetModel(businessId); finder.DocumentLength = FileUploadHelper.GetContentLength(finder.DocumentByteLength); return(BizResult(finder)); }
public string CommonGetPreviewLinkToken(string attachmentId) { return(null); var attachment = AttachmentOperator.Instance.GetModel(attachmentId); //如果当前文件是v1版并且当前使用的文件平台为v2版 则提交预览流 var stream = FileUploadHelper.DownLoadFileStream(attachment.AttachmentPath, attachment.IsUseV1).ToStream(); var accessToken = ""; var previewRelation = new PreviewRelation(); previewRelation.BusinessID = attachmentId; previewRelation.CreateDate = DateTime.Now; var currentUser = WebHelper.GetCurrentUser();; previewRelation.CreatorLoginName = currentUser.LoginName; previewRelation.CreatorName = currentUser.CNName; previewRelation.ID = Guid.NewGuid().ToString(); previewRelation.DocumentByteLength = stream.Length; previewRelation.DocumentFileCode = attachment.AttachmentPath; previewRelation.DocumentFileName = attachment.Name; var link = OWAHelper.Instance.GetDocumentLink(attachment.Name, previewRelation.ID, out accessToken); previewRelation.AccessToken = accessToken; previewRelation.DocumentLink = link; PreviewRelationOperator.Instance.AddModel(previewRelation); return(previewRelation.ID); }
public async Task <IActionResult> Edit(long id, [FromForm] ArtistViewModel artist) { if (id != artist.ID) { return(NotFound()); } if (ModelState.IsValid) { if (artist.formFile != null) { //delete old photo var oldPhoto = artist.PhotoName; await _s3Client.DeleteObjectNonVersionedBucketAsync(oldPhoto); //var uploads = Path.Combine(_hostingEnvironment.WebRootPath, "uploads"); FileUploadHelper objFile = new FileUploadHelper(); string fileName = objFile.GetFileName(artist.formFile, true); await _s3Client.UploadFileAsync(artist.formFile.OpenReadStream(), fileName); artist.PhotoName = fileName; } if (artist.Alive) { artist.DeathDate = null; } await _culturalClient.Update <ArtistViewModel>(artist, id, Route); return(RedirectToAction(nameof(Index))); } return(View(artist)); }
public AttachmentController(IAttachmentService service, ILoginInfo loginInfo, FileUploadHelper fileUploadHelper, IConfigProvider configProvider) { _service = service; _loginInfo = loginInfo; _fileUploadHelper = fileUploadHelper; _configProvider = configProvider; }
public AttachmentController(IAttachmentService service, ILoginInfo loginInfo, FileUploadHelper fileUploadHelper, ModuleCommonOptions moduleCommonOptions) { _service = service; _loginInfo = loginInfo; _fileUploadHelper = fileUploadHelper; _moduleCommonOptions = moduleCommonOptions; }
public SystemController(ISystemService systemService, IOptionsMonitor <ModuleCommonOptions> optionsMonitor, FileUploadHelper fileUploadHelper, MvcHelper mvcHelper) { _systemService = systemService; _fileUploadHelper = fileUploadHelper; _mvcHelper = mvcHelper; _options = optionsMonitor.CurrentValue; }
public FileController(IFileStorageProvider fileStorageProvider, IConfigProvider configProvider, FileUploadHelper fileUploadHelper) { _fileStorageProvider = fileStorageProvider; _configProvider = configProvider; _fileUploadHelper = fileUploadHelper; }
public async Task <ActionResult> UpLoadAndProcessFile() { string id = System.Guid.NewGuid().ToString(); string _extension = string.Empty; if (!MultipartRequestHelper.IsMultipartContentType(Request.ContentType)) { ModelState.AddModelError("File", "非法请求或请求的格式不正确."); return(BadRequest(ModelState)); } MediaTypeHeaderValue headerValue = MediaTypeHeaderValue.Parse(Request.ContentType); var boundary = MultipartRequestHelper.GetBoundary(headerValue, 2097152); if (string.IsNullOrEmpty(boundary)) { ModelState.AddModelError("ContentType", "Missing content-type boundary."); return(BadRequest(ModelState)); } var reader = new MultipartReader(boundary, HttpContext.Request.Body); var section = await reader.ReadNextSectionAsync(); while (section != null) { var hasContentDispositionHeader = ContentDispositionHeaderValue.TryParse(section.ContentDisposition, out var contentDisposition); if (hasContentDispositionHeader) { if (MultipartRequestHelper.HasFileContentDisposition(contentDisposition)) { //var untrustedFileNameForStorage = string.Empty; var trustedFileNameForDisplay = string.Empty; //untrustedFileNameForStorage = contentDisposition.FileName.Value; trustedFileNameForDisplay = WebUtility.HtmlEncode(contentDisposition.FileName.Value); _extension = Path.GetExtension(trustedFileNameForDisplay); var streamContent = await FileUploadHelper.ProcessStreamFile(section, contentDisposition, ModelState, 2097152); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string zipFilePath = $"jmx/{id}{_extension}"; string extractDirectoryPath = $"jmx/{id}"; using (var targetStream = System.IO.File.Create(zipFilePath)) { await targetStream.WriteAsync(streamContent); } bool extract = await FileOperaHelper.ExtractToDirectory(zipFilePath, extractDirectoryPath, true); if (!extract) { ModelState.AddModelError("message", "文件解压失败"); return(BadRequest(ModelState)); } } } section = await reader.ReadNextSectionAsync(); } return(Ok(new { code = "1", message = "上传成功", path = $"jmx/{id}{_extension}" })); }
public ActionResult Create([Bind(Include = "ProjectId,TicketTypeId,TicketPriorityId,Title,Description")] Ticket ticket, HttpPostedFileBase[] files) { if (ModelState.IsValid) { List <Tuple <string, string, string> > fileUploadResult = FileUploadHelper.UploadMultipleFiles(files); foreach (Tuple <string, string, string> upload in fileUploadResult) { TicketAttachment ticketAttachment = new TicketAttachment(); ticketAttachment.Title = upload.Item1; ticketAttachment.AttachmentUrl = upload.Item2; ticketAttachment.Description = upload.Item3; ticketAttachment.Created = DateTime.Now; ticketAttachment.UserId = User.Identity.GetUserId(); db.TicketAttachments.Add(ticketAttachment); ticket.TicketAttachments.Add(ticketAttachment); HistoryHelper.AnyAttachment(ticket, ticketAttachment, true); } ticket.TicketStatusId = db.TicketStatuses.FirstOrDefault(t => t.Name == "New/UnAssigned").Id; ticket.OwnerUserId = User.Identity.GetUserId(); ticket.Created = DateTime.Now; db.Tickets.Add(ticket); db.SaveChanges(); HistoryHelper.AnyCreated(ticket); return(RedirectToAction("MyIndex")); } ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); //ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); return(View(ticket)); }
public PostController( IPostService postService, PostViewModelProvider postViewModelProvider, CategoryViewModelProvider categoryViewModelProvider, IOptionsSnapshot <BehlogSetting> setting, FileUploadHelper fileUploader, ITagService tagService ) { postService.CheckArgumentIsNull(); _postService = postService; postViewModelProvider.CheckArgumentIsNull(); _postViewModelProvider = postViewModelProvider; categoryViewModelProvider.CheckArgumentIsNull(); _categoryViewModelProvider = categoryViewModelProvider; setting.CheckArgumentIsNull(); _setting = setting; fileUploader.CheckArgumentIsNull(); _fileUploader = fileUploader; tagService.CheckArgumentIsNull(nameof(tagService)); _tagService = tagService; }
public ActionResult Create([Bind(Include = "TicketId,Body,TicketAttachments")] TicketComment ticketComment, TicketAttachment ticketAttach, HttpPostedFileBase filePath) { if (ModelState.IsValid) { if (filePath != null) { if (FileUploadHelper.IsWebFriendlyImage(filePath)) { var fileName = Path.GetFileName(filePath.FileName); fileName = fileName.Replace(' ', '_'); filePath.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), fileName)); ticketAttach.FilePath = "/Uploads/" + fileName; //assiging value of ticketAttach.FilePath to incomeing upload ticketAttach.UploadDate = DateTime.Now; ticketAttach.UserId = User.Identity.GetUserId(); //property of this specific attachment is on left ...the right side of the = is what i am assigning to the property db.Attachments.Add(ticketAttach); } } ticketComment.CommentAttachment = ticketAttach.FilePath; //ticketComment. COmmentAttachment = to the ticketAttach.FilePath ticketComment.OwnerId = User.Identity.GetUserId(); //sending user id to DB ticketComment.CreatedDate = DateTime.Now; //sending current DATETIME to DB db.Comments.Add(ticketComment); db.SaveChanges(); return(RedirectToAction("Details", "Tickets", new { id = ticketComment.TicketId })); // to go details page of whatever you want you need its ID. Details action requires ID. give it to it so it doesnt blow up. object route value } ViewBag.OwnerId = new SelectList(db.Users, "Id", "FirstName", ticketComment.OwnerId); ViewBag.TicketId = new SelectList(db.Tickets, "Id", "Title", ticketComment.TicketId); return(View(ticketComment)); }
[RequestSizeLimit(31457280)] //30 MB for now, change it later based on the size of the pixel art's data consumption. public async Task <IActionResult> Add(PixelArt p) { IFormFile Pixel = p.PixelArtPhoto; if (FileUploadHelper.IsFileEmpty(Pixel)) { //Add Error. //return view. } if (!FileUploadHelper.IsValidExtension(Pixel, FileUploadHelper.FileTypes.Photo)) { //Add error message //return view. } string pixelArtName = await _BlobHelper.UploadBlob(p.PixelArtPhoto); p.PixelArtURL = pixelArtName; //add to DB _context.PixelArts.Add(p); //makes sure the changes are saved/executed. await _context.SaveChangesAsync(); //redirect back to Gallery Page return(RedirectToAction("Gallery")); }
public ArtefactsController(ApplicationDbContext context, UserManager <ApplicationUser> userManager, IConfiguration configuration) : base(context) { _context = context; _userManager = userManager; _fileUploadHelper = new FileUploadHelper(configuration); // add to dep injection }
public async Task <JsonResult> FileUploader(IList <IFormFile> files, string destination, bool isCrop, string allowExt = "") { if (string.IsNullOrEmpty(destination)) { return(Json(new FileUploadResponse() { messages = new List <string>() { "Error" } })); } string basePath = FileUploadHelper.DecryptString(destination); //else //{ // basePath = Path.Combine(CurrentHostEnvironment.WebRootPath, "upload"); //} if (!string.IsNullOrEmpty(allowExt)) { allowExt = FileUploadHelper.DecryptString(allowExt); } var result = new FileUploadHelper().FileUpload(files, basePath, isCrop, allowExt); return(Json(result)); }
///// <summary> ///// 获取预览地址 ///// </summary> ///// <param name="taskId"></param> ///// <returns></returns> //[HttpGet] //[Route("template/download/preview/{taskId}")] //public IHttpActionResult PreviewTaskTemplate(string taskId) //{ // FilesController filesController = new FilesController(); // string businessType = "TaskTemplatePreviewAttach"; // Lib.Model.Attachment attachment = null; // var finder = AttachmentOperator.Instance.GetLastModel(businessType, taskId); // if (finder != null) // { // attachment = finder; // } // else // { // var fileName = ""; // var stream = LoadTaskTemplateStream(taskId, out fileName); // attachment = AttachmentOperator.Instance.CommonUpload(taskId, businessType, fileName, stream); // } // AttachmentOperator.Instance.AddModel(attachment); // var result = filesController.GetPreviewLinkToken(attachment.ID); // return result; //} private MemoryStream LoadTaskTemplateStream(string taskId, out string fileName) { var ret = Guid.Empty; if (string.IsNullOrEmpty(taskId) || !Guid.TryParse(taskId, out ret)) { throw new BizException("参数错误"); } var task = TemplateTaskOperator.Instance.GetModel(taskId); var tci = TemplateConfigInstanceOperator.Instance.GetModel(task.TemplateConfigInstanceID); var attachment = AttachmentOperator.Instance.GetModelByCode(tci.TemplatePathFileCode); System.IO.Stream stream = FileUploadHelper.DownLoadFileStream(tci.TemplatePathFileCode, attachment.IsUseV1).ToStream(); ExcelEngine engine = new ExcelEngine(); Workbook taskBook = new Workbook(stream); #region 更新二维表时使用 var dcu = DataCollectUserOperator.Instance.GetModel(task.DataCollectUserID); var templateSheets = TemplateSheetOperator.Instance.GetList(tci.TemplateID); if (tci.TaskTemplateType == 2) { TemplateOperator.Instance.GetTemplateDateForUpdate(taskBook, templateSheets, dcu.UpdateArea, dcu.AreaValue); } #endregion engine.SetCustomProperty(taskBook.Worksheets[0], "TempleteID", tci.TemplateID); MemoryStream taskMemStream = new MemoryStream(); var format = TemplateOperator.Instance.GetFormatType(tci.TemplatePathFileExt); taskBook.Save(taskMemStream, format); fileName = string.Format("{0}-{1}({2})-{3}", tci.TemplateConfigInstanceName, task.EmployeeName, task.EmployeeLoginName, DateTime.Now.ToString("yyyyMMddHHmmss")); fileName = string.Format("{0}{1}", fileName, tci.TemplatePathFileExt); return(taskMemStream); }
public async Task <ActionResult> Edit(BannerPhotographEditViewModel model) { ModelState.Remove("Image"); if (ModelState.IsValid) { db.Update(model.Banner); db.ExcludeFromUpdate(model.Banner, b => new { b.UriPath }); if (model.Image != null) { var fileName = db.GetValueFromDb(model.Banner, b => b.UriPath); FileUploadHelper.SaveImage( model.Image.InputStream, 1024, 500, Path.Combine(Server.MapPath("~/Public/Banners"), fileName), FitMode.Crop); } foreach (var item in model.Banner.Translations) { db.UpdateTranslation(item); } await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(model)); }
public IActionResult Post([FromForm] CarAddDto carAddDto) { List <string> imagePaths = new List <string>(); if (Request.Form.Files.Count > 0) { var carImages = Request.Form.Files; foreach (var file in carImages) { // TODO: Filename edit // upload request form files to under "wwwroot/Images/CarImages" folder and return saving db paths var dbPath = FileUploadHelper.UploadFile(file, "wwwroot", "Images\\CarImages"); imagePaths.Add(dbPath); } } var car = _mapper.Map <Car>(carAddDto); var result = _carManager.AddCar(car, imagePaths); if (!result.IsSuccess) { return(BadRequest(result)); } //imagePaths.ForEach(FileUploadHelper.RemoveFile); return(Ok(result)); }
public async Task <IActionResult> FileUpload() { try { string file_name = Path.GetRandomFileName(); string root_path = _hostingEnvironment.ContentRootPath; var upload_path = this.GetFilesUploadPath(true); var fileUploadForm = await FileUploadHelper.ParseRequestForm(this, async (section, formFileInfo) => { // TODO: This function will be called every time parser got a file // but this controller only supports one file per request. // Therefore the last file will be the one to be saved if the client // passed up more than one file. file_name += Path.GetExtension(formFileInfo.FileName); var upload_file_path = Path.Combine(upload_path, file_name); using (var fileStream = System.IO.File.Create(upload_file_path)) { await section.Body.CopyToAsync(fileStream); } }, new FileUploadForm()); return(Content(file_name)); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <IActionResult> DownloadTechNoteFile(int id) { var techNote = await _techNoteService.GetTechNoteById(id); string filename = techNote.m_file_guid; if (filename == null) { return(Content("filename not present")); } var TechNotesUserFilePath = _configuration["UserFilePath:TechNotesFiles"]; var rootPath = _hostingEnvironment.WebRootPath; var path = Path.Combine( rootPath, TechNotesUserFilePath, filename); var memory = new MemoryStream(); using (var stream = new FileStream(path, FileMode.Open)) { await stream.CopyToAsync(memory); } memory.Position = 0; return(File(memory, FileUploadHelper.GetContentType(path), techNote.m_file_name)); }
public async Task <IActionResult> UploadPortrait(IFormFile Image) { var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var specialist = await _specialistService.FindAsync(userId); if (Image != null) { specialist.ImageUrl = await FileUploadHelper.UploadAsync(Image, Models.Enums.ImageOwnerEnum.Specialist); Response.Cookies.Append("profileImage", specialist.ImageUrl); } await _specialistService.UpdateAsync(specialist); if (!specialist.ImageUrl.IsNullOrWhiteSpace()) { TempData["Status"] = "Portrait sent successfully"; } else { TempData["Status"] = "Portrait did not upload"; } return(View(model: specialist.ImageUrl)); }
private void IncludeAssets() { ViewData["UploadPath"] = FileUploadHelper.EncryptString(Path.Combine(CurrentHostEnvironment.WebRootPath, "images", "user")); ViewData["AllowExtension"] = FileUploadHelper.EncryptString(string.Join(",", Enum.GetNames(typeof(ImageExtensionEnum)))); AddJS("FileUploadJs", "/js/uploadFile.js"); AddJS("FileUploadJs", "/lib/js/jquery.validate.js"); }