2016-12-28 86 views
0

我想合併pdf文件並將它們顯示在iframe中。一切工作正常,但是當我嘗試合併一分鐘秒的PDF時,我得到了404錯誤,並在此之後,每當文件生成一切正常。 我該如何解決我的問題?合併PDF文件時出現錯誤404錯誤

<md-tab label="Preview Pdfs"> 
    <div flex ng-hide="userForm.$invalid"> 
    <fieldset class="md-padding"> 
    <legend class="standart">Pdf preview</legend> 
    <iframe ng-src="{{mergedPdfFile}}" style="width:100%; height:800px; margin-top:20px;" type='application/pdf'></iframe> 
    </fieldset> 
    </div> 
</md-tab> 

getMergedPdf(selectedPdfsIds).then(function (response) { 

     $scope.mergedPdfFile = baseUrl + response; 
    }); 

網絡流量 enter image description here

+0

我沒有猜'mergedPdfFile'是當時不可用。在合併之前,將'ng-if =「mergedPdfFile」'添加到''並確保它的值爲空。 – bhantol

+0

謝謝。這沒有幫助。同樣的問題。 – user6934713

+0

您可以共享填充'mergedPdfFile'的代碼。無需顯示PDF合併細節。 – bhantol

回答

1

getMergedPdf()功能是異步的,而你顯示你的iframe $scope.mergedPdfFile有一個值之前。因此,當iframe第一次顯示時,ng-src="{{mergedPdfFile}}將是null。根據處理getMergedPdf()需要多長時間,您可能會看到404一段時間或更長時間。

簡單的解決辦法是在iframe中使用ng-if,使iframe中不呈現直到居然有東西在裏面顯示,類似:

<iframe ng-if="mergedPdfFile" ng-src="{{mergedPdfFile}}" ...></iframe> 
+0

謝謝。我遵循你的建議,但再次一秒鐘我得到404(我正在合併超過1000 kbs pdfs) – user6934713

+0

你是否將'mergedPdfFile'設置爲代碼中其他位置的值?你提供的網絡圖似乎表明,它的價值在某些時候是「真實的」,這沒有任何意義。 – Claies

+0

另一個想法是否有可能您的回答錯誤?你有嘗試過嗎,例如'$ scope.mergedPdfFile = baseUrl + response.data;' – Claies