Exemple #1
0
        public void ProcessRequest(HttpContext context)
        {
            HttpFileCollection uploadedFiles = context.Request.Files;
            var path = string.Empty;

            // actual info: we handle one file
            if (uploadedFiles.Count == 1)
            {
                var postedFile = uploadedFiles[0];
                var parentId   = HttpContext.Current.Request.Form[ParentIdRequestParameterName];

                if (String.IsNullOrEmpty(parentId))
                {
                    parentId = TryToGetParentId(context);
                }

                if (!String.IsNullOrEmpty(parentId))
                {
                    IFolder parentNode   = null;
                    var     parentNodeId = Convert.ToInt32(parentId);
                    parentNode = parentNodeId == 0 ? Repository.Root : Node.LoadNode(parentNodeId) as IFolder;

                    if (parentNode != null)
                    {
                        string fileName = System.IO.Path.GetFileName(postedFile.FileName);
                        path = RepositoryPath.Combine((parentNode as Node).Path, fileName);
                        //PathInfoRemove:
                        //object t = RepositoryPathInfo.GetPathInfo(path);
                        var contentType = UploadHelper.GetContentType(postedFile.FileName, ContentType);
                        var t           = NodeHead.Get(path);
                        if (t == null)
                        {
                            if (!String.IsNullOrEmpty(contentType))
                            {
                                CreateSpecificContent(context, contentType, parentNode, postedFile);
                            }
                            else
                            {
                                SaveNewFile(context, postedFile, parentNode, path);
                            }
                        }
                        else
                        {
                            if (!String.IsNullOrEmpty(contentType))
                            {
                                ModifySpecificContent(parentNode, postedFile, path);
                            }
                            else
                            {
                                ModifyFile(context, postedFile, parentNode, path);
                            }
                        }
                    }
                    else
                    {
                        this.SetError(context, String.Format("Couldn't find parent node with {0} id.", parentId), 500);
                    }
                }
                else
                {
                    this.SetError(context, "Post parameter error: ParentId is null or empty!", 500);
                }
            }

            var backUrl = PortalContext.Current.BackUrl;

            if (!String.IsNullOrEmpty(backUrl))
            {
                context.Response.Redirect(backUrl);
            }

            // everything's fine
            context.Response.StatusCode = 200;
            context.Response.Write(Environment.NewLine);
            context.Response.End();
        }
Exemple #2
0
 /// <summary>
 /// Modify node's binary
 /// </summary>
 /// <param name="node"></param>
 /// <param name="stream"></param>
 public static void ModifyNode(Node node, Stream stream)
 {
     node.SetBinary("Binary", UploadHelper.CreateBinaryData(node.Name, stream));
     node.Save();
 }
Exemple #3
0
 // ------------------------------------------------------------------ Static methods
 public static BinaryData CreateBinaryData(HttpPostedFile file)
 {
     return(UploadHelper.CreateBinaryData(file));
 }