以pdf格式创建sitecore项目
您好,我现在正在将其他cms迁移到sitecore 因此,我的要求是在各自的url中查看pdf 现有网站url:DOMAIN.COM/presslease/one 这将在浏览器中显示PDF内容 新站点预期Url:NEWDOMAIN.COM/presslease/one 同样,在我的sitecore内容中,我尝试在根目录下创建一个pressrelease项目,其子项是one.pdf。但在这之后,当我给出了NEWDOMAIN.COM/pressrease/one这样的url时,我无法查看我的pdf以pdf格式创建sitecore项目,pdf,sitecore8,sitecore-mvc,Pdf,Sitecore8,Sitecore Mvc,您好,我现在正在将其他cms迁移到sitecore 因此,我的要求是在各自的url中查看pdf 现有网站url:DOMAIN.COM/presslease/one 这将在浏览器中显示PDF内容 新站点预期Url:NEWDOMAIN.COM/presslease/one 同样,在我的sitecore内容中,我尝试在根目录下创建一个pressrelease项目,其子项是one.pdf。但在这之后,当我给出了NEWDOMAIN.COM/pressrease/one这样的url时,我无法查看我的pdf
并且需要预期的行为是在浏览器中打开pdf文件,就像media(/-/media/pressrelease/one)项目可以查看一样 在App_config/include文件夹中创建AllowedExtensions.config(如果它还不存在)并添加以下sitecore配置。该配置确保通过URL允许PDF
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>
<preprocessRequest>
<processor type="Sitecore.Pipelines.PreprocessRequest.FilterUrlExtensions, Sitecore.Kernel">
<param desc="Allowed extensions (comma separated)">aspx, ashx, asmx, xml, txt,pdf,png</param>
<param desc="Blocked extensions (comma separated)">*</param>
<param desc="Blocked extensions that stream files (comma separated)">*</param>
<param desc="Blocked extensions that do not stream files (comma separated)"/>
</processor>
</preprocessRequest>
</pipelines>
</sitecore>
</configuration>
aspx、ashx、asmx、xml、txt、pdf、png
*
*
我已使用以下解决方案解决了我的问题
if(mediaResult.mediaItem != null)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = mediaResult.mediaItem.MimeType;
HttpContext.Current.Response.AppendHeader("Content-Disposition", string.Format("inline;filename=\"{0}\"", mediaResult.mediaName));
HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.OK;
HttpContext.Current.Response.BufferOutput = true;
// Copy the media stream to the response output stream
mediaResult.mediaItem.GetMediaStream().CopyTo(HttpContext.Current.Response.OutputStream);
// As momma always said: Always remember to flush
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}