因此,我的應用程序的所有上傳內容都不存儲在我的Web服務器空間中,它們存儲在文件系統存儲中。當我的用戶想要訪問文件時,他們會調用一個URL,後端進程會通過HttpServletResponse outputstream將數據緩衝到瀏覽器。這可以很好地用於下載文件。現在我的用例有一個場景,我需要使用相同的方法加載嵌入的對象。來自動態來源的HTML對象數據網址
我基本上是在瀏覽器中加載PDF文件的預覽。如果PDF存儲在Web服務器上,並且提供文件的直接URL,這可以正常工作。但是,當我使用我的方法發送文件給用戶時,它不起作用。
<object data='"+pdfUrl+"' type='application/pdf' width='160px' height='160px' />
如果我把pdfURL
到瀏覽器我的文件被下載了沒有問題。所以我認爲問題是我在輸出流中發送的HTTP頭可能阻止了對象正確加載。我不知道,也許它的具體期待着什麼,以便觸發我目前使用非常基本的標題如下加載文件
設置:
BufferedInputStream is = <Some File Inputstream>;
resp.setContentType(new MimetypesFileTypeMap().getContentType(directory+filename));
resp.setHeader("Content-Disposition", "attachment; filename="+StringFormatHelper.formatFileName(filename));
bufferedCopy(is, resp.getOutputStream());
is.close();
resp.getOutputStream().flush();
任何人有我有什麼想法更改以使數據正確加載到Object標記中?我沒有在JS控制檯或服務器端發生任何錯誤。我不知道如何調試這個問題。
編輯: 因此,我剛剛意識到,如果我右鍵點擊空白對象標籤在哪裏,我可以選擇「另存爲...」,當我做我下載PDF。所以PDF數據加載,但它只是不顯示在用戶界面。