PDF преобразуется в .ashx в sitecore, не удается открыть с помощью IE - PullRequest
4 голосов
/ 30 марта 2011

Как и для всех мультимедийных файлов в Sitecore, расширение преобразуется в .ashx, что становится проблемой для посетителей моего сайта при использовании IE и Acrobat Reader.Обычно пользователь нажимает на ссылку загрузки, текущая страница загружается, показывая, что что-то должно произойти, но затем ничего не открывается.Могу ли я сказать, что у Adobe Acrobat возникают проблемы с расширением .ashx, когда он ищет .pdf, поэтому он просто сдается?Если это так, то как мне обойти это?

Кайл

Ответы [ 3 ]

5 голосов
/ 30 марта 2011

Я считаю, что это может быть общей проблемой.Какую версию Sitecore вы используете?На SDN обсуждаются различные дискуссии:

Я бы проверил ваши типы MIME, как указано в первой ссылке выше.

2 голосов
/ 08 февраля 2012

true заставит браузер любого типа загрузить pdf ...

Вот окончательное решение:

сделать класс C #

public class MediaHandler : MediaRequestHandler
{
    public override void ProcessRequest(HttpContext context)
    {

        DeterminePDFRequest(context);

        base.ProcessRequest(context);

    }

    private static void DeterminePDFRequest(HttpContext context)
    {

        MediaRequest request = MediaManager.ParseMediaRequest(context.Request);

        if (request != null)
        {
            Media media = MediaManager.GetMedia(request.MediaUri);

            if (media != null)
            {
                Item item = media.MediaData.MediaItem;
                MediaItem mediaItem = media.MediaData.MediaItem;

                if (mediaItem != null)
                {

                    if (context.Request.UserAgent != null)
                    {
                        if (mediaItem.Extension != "pdf")
                            return;

                        string requestedUrl = context.Items["SC_REQUEST_MEASUREMENT_URL"].ToString();

                        if (!requestedUrl.Contains(".pdf"))
                        {

                            MediaUrlOptions mediaUrlOptions = new MediaUrlOptions
                            {
                                AbsolutePath = true,
                                DisableMediaCache = true,
                                DisableBrowserCache = true
                            };

                            string url = StringUtil.EnsurePrefix('/',
                                                                MediaManager.GetMediaUrl(mediaItem,
                                                                                        mediaUrlOptions));
                            url = url.Replace(".ashx", ".pdf");
                            QueryString queryString = new QueryString(url);
                            context.Response.Redirect(queryString.All);
                        }
                    }
                }
            }
        }
    }
}

обязательно замените и обновите verb="*" path="sitecore_media.ashx" в web.config для использования вашего MediaHandler

2 голосов
/ 30 марта 2011

Примечание:

У Firefox для Mac есть общая проблема с обработкой файлов .ashx напрямую (то есть с прямой связью с ними). ​​

Обычно это то, что можно увидеть в PDF-файлах,так как он попытается открыть файл .ashx или не проверять расположение содержимого.

Помните о проблемах с Firefox на Mac, поскольку PDF-файлы там не будут работать.

Для этого вынужно настроить некоторые вещи в соответствии с:

http://sdn.sitecore.net/scrapbook/media%20files%20downloaded%20with%20ashx%20extension.aspx

, если вы не можете получить доступ, который, как правило, говорит вам, чтобы перейти к web.config, найдите это:

<mediaType name="PDF file" extensions="pdf">

и измените

<forceDownload>false</forceDownload>

на

<forceDownload>true</forceDownload>
...