private Stream GetStreamData(string itemId, string version, string path)
        {
            Item item = null;

            if (!string.IsNullOrWhiteSpace(path))
            {
                item = ContextExtension.CurrentDatabase.SelectSingleItem(path);
            }
            else
            {
                item = string.IsNullOrWhiteSpace(version) ? ItemHelper.GetItemById(itemId) : ItemHelper.GetItemById(itemId, version);
            }

            if (item != null)
            {
                Sitecore.Resources.Media.Media media = Sitecore.Resources.Media.MediaManager.GetMedia(item);
                if (media != null)
                {
                    System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.ContentType = media.MimeType;
                    System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Disposition", string.Format("attachment; filename={0}", item.Name));
                    System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.Headers.Add("X-Filename", item.Name);
                    Sitecore.Resources.Media.MediaStream mediaStream = media.GetStream();
                    return(mediaStream.Stream);
                }
            }
            return(null);
        }
예제 #2
0
    protected override bool DoProcessRequest(HttpContext context, Sitecore.Resources.Media.MediaRequest request,
                                             Sitecore.Resources.Media.Media media)
    {
        if (!string.IsNullOrEmpty(context.Request.QueryString["type"]))
        {
            request.Options.Height = 120;   //desired height here
            request.Options.Width  = 180;   //desired width here
        }

        return(base.DoProcessRequest(context, request, media));
    }
예제 #3
0
        public void Process(UploadArgs args)
        {
            var db = Sitecore.Context.ContentDatabase;

            var uploadPath = db.GetItem(args.Folder).Paths.ContentPath;

            if (!uploadPath.StartsWith(Path))
            {
                // Not uploading to designated folder
                return;
            }

            foreach (var item in args.UploadedItems)
            {
                Sitecore.Diagnostics.Log.Info(string.Format("UPLOAD Pipeline :: Item for Upload, Name: {0}, Path: {1}", item.Name, item.Paths.FullPath), this);
                // Need to change template for this item?
                Sitecore.Resources.Media.Media media = Sitecore.Resources.Media.MediaManager.GetMedia(item);
                string mimeType = string.Empty;
                if (media != null)
                {
                    Sitecore.Diagnostics.Log.Info(string.Format("UPLOAD Pipeline :: Item has a mediaItem, extension: {0}, MIME type: {1}", media.Extension, media.MimeType), this);
                    mimeType = media.MimeType;
                }

                var changedTemplate = Templates.Where(t => t.Old.Equals(item.Template.FullName) && t.MimeType.ToLower() == mimeType.ToLower()).FirstOrDefault();

                if (changedTemplate != null)
                {
                    var newTemplate = db.Templates[changedTemplate.New];
                    try
                    {
                        item.ChangeTemplate(newTemplate);
                        Sitecore.Diagnostics.Log.Info(string.Format("UPLOAD Pipeline :: Changed Template applied to item {0}: from [{1}] to [{2}].", item.Name, item.Template.FullName, newTemplate.FullName), this);
                    }
                    catch (Exception ex)
                    {
                        Sitecore.Diagnostics.Log.Error(string.Format("UPLOAD Pipeline :: Configured ChangeTemplate was unable to be applied on item {0}: original template [{1}], new template [{2}].", item.Name, item.Template.FullName, newTemplate.FullName), ex, this);
                    }
                }
            }
        }