protected virtual void CopyFile(IFileObject file, HttpContext context) { var httpFileUtils = new HttpFileUtils(); httpFileUtils.GetFile(file, new HttpContextWrapper(context)); }
protected virtual void ProcessRequestInternal(HttpContext context) { log.Write(LogEvent.Debug, "File upload request: {0}", context.Request.Url.ToString()); string filesystemName = context.Request["filesystem"]; if (String.IsNullOrEmpty(filesystemName)) { throw new Exception("Parameter missed: filesystem"); } var fs = AppContext.ComponentFactory.GetComponent <IFileSystem>(filesystemName); if (fs == null) { throw new Exception(String.Format("Component does not exist: {0}", filesystemName)); } string folder = context.Request["folder"] ?? String.Empty; var overwrite = false; if (context.Request["overwrite"] != null) { Boolean.TryParse(context.Request["overwrite"], out overwrite); } var fileUtils = new HttpFileUtils(); var result = new List <IFileObject>(); for (int i = 0; i < context.Request.Files.Count; i++) { var file = context.Request.Files[i]; if (String.IsNullOrEmpty(file.FileName.Trim())) { continue; } var blockedExtensions = AppContext.ComponentFactory.GetComponent <IList <string> >("blockedUploadFileExtensions"); if (blockedExtensions != null && blockedExtensions.Contains(Path.GetExtension(file.FileName).ToLower())) { throw new Exception(AppContext.GetLabel(InvalidFileTypeMessage)); } var fileInput = new HttpFileUtils.InputFileInfo(file.FileName, file.InputStream) { Folder = folder, Overwrite = overwrite }; if (context.Request["imageformat"] != null) { fileInput.ForceImageFormat = context.Request["imageformat"]; } if (context.Request["image_max_width"] != null) { fileInput.ImageMaxWidth = Convert.ToInt32(context.Request["image_max_width"]); } if (context.Request["image_max_height"] != null) { fileInput.ImageMaxHeight = Convert.ToInt32(context.Request["image_max_height"]); } var uploadFile = fileUtils.SaveFile(fs, fileInput); result.Add(uploadFile); } context.Response.Write(JsUtils.ToJsonString( result.Select(f => new Dictionary <string, object> { { "name", Path.GetFileName(f.Name) }, { "filepath", f.Name }, { "size", f.Content.Size } } ).ToArray())); }