2016-09-04 3 views
1
나는 고객의 일부 업로드 된 이미지를 표시 할 수 blueimp 갤러리를 사용하고

Blueimp 갤러리 PDF 지원

가끔

그들은 또한 PDF 파일을 업로드하고 현재 우리가 blueimp 갤러리에서 미리보기 PDF로 좋은 것 동안 수동으로 열 수 있습니다 .

이 문서에서 나는 그 "쉽게"가 다른 콘텐츠 유형 (들)에 지원을 추가 할 수 있습니다 참조 : 아주 약간의 상상력과

https://github.com/blueimp/Gallery#example-html-text-factory-implementation

... 내가 시도 :

css: 

.blueimp-gallery > .slides > .slide > .pdf-content { 
    overflow: auto; 
    margin: 60px auto; 
    padding: 0 60px; 
    max-width: 1200px; 
    text-align: left; 
    color:white; 
} 

js: 

blueimp.Gallery.prototype.applicationFactory = function (obj, callback) { 
    var $element = $('<div>') 
      .addClass('pdf-content') 
      .attr('title', obj.title); 
    $.get(obj.href) 
     .done(function (result) { 
      $element.html(result); 
      callback({ 
       type: 'load', 
       target: $element[0] 
      }); 
     }) 
     .fail(function() { 
      callback({ 
       type: 'error', 
       target: $element[0] 
      }); 
     }); 
    return $element[0]; 
}; 

    $('#blueimpGallery-button').on('click', function (event) { 
     blueimp.Gallery([ 
      { 
       title: 'Test pdf_1', 
       href: '/docs/test1.pdf', 
       type: 'application/pdf' 
      }, 
      { 
       title: 'Test pdf_2', 
       href: '/docs/test2.pdf', 
       type: 'application/x-pdf' 
      }, 
      { 
       title: 'Test pdf_3', 
       href: '/docs/test3.pdf', 
       type: 'application/x-pdf' 
      } 

     ]); 
    }) 

다소 의외로 .. 실행되지만 pdf는 인식되지 않고 다음과 같이 소스 코드 으로 표시됩니다. screenshot 필자는 적어도 그것이 유용하다고 생각할 수 있습니다. mime 형식의 m,하지만 그것을 고칠 수있는 방법을 모르겠다

방향을 제안 할 수 있습니까? 감사합니다.

+0

대신 파일 업로드를 시도하십시오. --- https://blueimp.github.io/jQuery-File-Upload/ – Tasos

+0

죄송합니다. 귀하의 조언을 이해하지 못했습니다 : 파일 업로드에는 악용 될 수있는 숨겨진 기능이 있지만 갤러리에 pdf 파일을 표시해야합니다. – Joe

+0

갤러리에 파일 업로드 파일이 있고 파일을 업로드 할 수도 있습니다. 나는 당신이 그것을 볼 수있는 브라우저를 사용하여 그것을 볼 수있는 PDF를 클릭하면 가정합니다. 어쨌든 나는 당신이 별도로해야 할 것 같아요 2. 갤러리 갤러리에 PDF 파일을 열려면 추가 플러그인이 없다면 이미지 만 볼 수 있습니다. – Tasos

답변

0

나는 비슷한 문제에 직면 해 있으며 여기에 "실행 가능한"해결책이 있습니다. ASP.Net MVC를 사용하고 있습니다.

파일 확장명을 감지하고 정적 pdf 아이콘 이미지를 표시하고 앵커 태그에 사용자 정의 onclick 이벤트를 추가하여 새 창에서 pdf 파일을 엽니 다. 그러나 당신의 PDF가 적절한 헤더 (즉, "응용 프로그램/PDF")로 렌더링되어 있는지 확인

<span> 
@{ 
bool IsPDF = item.FileName.ToLower().EndsWith(".pdf"); 
    string resURL = Url.Action("GetFile", "MyController") + "?" + item.CodeStr; 
    string imgURL = !IsPDF ? resURL : Url.Content("~/Content/Images/pdf.png"); 
    string target = !IsPDF ? "" : " onClick=\"window.open('" + resURL + "', '_blank')\""; // SO : 13335954 
} 

<a href="@resURL" @Html.Raw(target) title="@item.FileName @item.FileTypeTitle"> 
    <img src="@imgURL" width="150px" alt="@item.Comment" /> 
</a> 
</span> 

코드는 위의 면도기 구문 (추측하는 것은 어렵지 않다 희망) 내 응용 프로그램에 따라 다릅니다. 누가 더 나은 해결책을 가지고 있는지 알려주십시오..

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 사실 아직 해결책을 찾지 못했지만, 현재 다른 문제에 집중하고 있습니다. 나는 pdf를 jpg/png로 변환하는 것을 평가 해 왔지만 이전 ASP에서 일한 이후로는 쉽지 않을 것이라고 생각합니다. 적절한 헤더 정보 : 제목으로''application/pdf ''를 추가했으나 충분하지는 못했습니다. 바로 거기에 문제가 있다고 생각합니다 : 분명히 파일이 정확합니다. pdf 파일 : 프레임이나 페이지에서 열면 올바르게 렌더링되었습니다. 다른 제안이 있으면 감사하겠습니다. – Joe

+0

Joe, Safari가 pdf 파일을 인라인으로 렌더링 할 수 있다는 점에 놀라실 것입니다 (예 : 이미지). 그러나 다른 사람들은 그렇지 않습니다. 다른 옵션을 선택했습니다. 업로드 된 pdf 이미지 (xyz.pdf.img)를 만든 다음 해당 이미지를 갤러리에 사용합니다. 이제는 .NET에서 이미지 도구를 무료로 다운로드 할 수 있습니다. 내 게시물 : http://stackoverflow.com/questions/39706662/free-pdf-to-image-tool-for-commercial-asp-net-web-app –

+0

https://sites.google.com/site/aspfpdf/tutorials 그건 완전히 무료이며 ASP ..하지만 고전적인 ASP (실제로 ... jscript)하지만 잘 작동합니다. – Joe