簡體   English   中英

如何從url下載文件? (無法在瀏覽器中打開)

[英]How to get files downloaded from url? (not to open in browser)

我是java的新手,我需要在單擊下載選項時下載pdf / txt / .xls或任何文件。 就我而言,我在數組列表中有某些值並顯示在jsp中。 在我的清單(名字清單)中

name=rahul
url=files/en/software/rahul.txt
name=roshan
url=files/en/software/roshan.pdf

當我迭代(名稱列表)並在jsp中顯示以上內容時,我的jsp

<td valign="top">${namelist.name}</td>

<td colspan="2" valign="top">                           
<a href="${namelist.url}"/>
<img src="/images/download.gif" alt="Download" border="0" align="right"></a><br/><br/>
</td>

所以在我的jsp iam中,URL中有很多用戶名和相應的文件。 點擊下載后,該文件即會在瀏覽器中打開,網址為http://www.xxx.com/files/en/software/roshan.pdf

但我希望打開此窗口,因為彈出窗口要求用戶提供另存為/打開選項。 當將此URL傳遞給控制器​​時,我僅獲得/files/en/software/roshan.pdf值。 我在他們建議使用response.setHeader(“ Content-Disposition”,“ attachment; filename =” + name);的每個地方都搜索了相同的內容。

所以我創建了一個名為download的控制器,點擊下載后,我將網址映射為這樣

<a href='<c:url value="/download.sp?name=${namelist.name}&downloadUrl=${namelist.url}"/>'>
<img src="/images/download.gif" alt="Download" border="0" align="right"></a><br/><br/>

在我的控制器中。 我不知道該怎么辦,我已經寫了這樣

public ModelAndView download(HttpServletRequest request, HttpServletResponse response) throws Exception {
        cat.debug(" download: begin");
        ModelAndView modelView = super.handleRequest(request, response);
        String url = request.getParameter("downloadUrl");
        String name = request.getParameter("name");
        response.setHeader("Content-Disposition", "attachment;filename="+name);
        String viewName = "swl_download";
        modelView.setViewName(viewName);
        return modelView;
}

上面是打開具有相同名稱的彈出窗口。我想在控制器中包含更多內容,以便在單擊下載時文件應與url中的文件相同(要在上面的控制器中包含/ change)。 請幫助我解決這個問題。謝謝我的幫助。

需要查看sql_download視圖正在做什么。

通常,我在視圖本身中設置內容處置。 所以我自定義的AbstractView實現看起來像:

response.setHeader("Content-disposition", "attachment; filename="+fileName); response.setContentType("application/vnd.ms-excel"); OutputStream out = response.getOutputStream(); helperClass.exportDataToExcel(data, out);

內容類型也很重要,以幫助您的瀏覽器選擇正確的應用程序來加載文檔。

您應該知道,這些標頭僅是瀏覽器的建議,瀏覽器可以自由地以自己的方式解釋它們。 因此,您將不能強制所有瀏覽器顯示“打開或保存”對話框。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM