图片实现默认下载而不是打开图片(Java版)

在网页上,如果我们的超链接的地址对应的是一个jpg文件,txt文件等,点击链接时,浏览器默认的是打开这些文件而不是下载,那么如何才能实现默认下载呢。

可通过自己写一个download.jsp来实现。

<span style="font-size:18px;"><%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.net.*"%>
<%
	//得到文件名字和路径
	String filename = request.getParameter("filename");
	String filepath = request.getParameter("filepath");
	String displayfilename = URLEncoder.encode(filename,"UTF-8");
	try {
		response.setContentType("application/x-download");
		response.setHeader("Content-Disposition","attachment;filename=\"" + displayfilename + "\"");
	    RequestDispatcher dis = application.getRequestDispatcher(filepath + filename);
	    if (dis != null) {
	        dis.forward(request,response);
	    }
	    response.flushBuffer();
	} catch (Exception e) {
	    System.out.println("下载取消:" + filepath + filename);
	}
	out.clear();
    out = pageContext.pushBody();
%></span>

当我们要链接图片(或其他浏览器默认打开的格式,这里以图片为例)时,把对应的文件名和地址传入download.jsp的filename和filepath参数里,具体写法如下

<a class="blue-line-a" href=" /PackTool/download.jsp?filename=WinGUI.exe&amp;filepath=http://127.0.0.1:8080/shareFolder/other/WinGUI.exe">/other/WinGUI.exe</a>

通过这样方式,我们就能实现文件的默认下载了,而不是浏览器的默认打开。

时间: 2024-08-04 01:05:26

图片实现默认下载而不是打开图片(Java版)的相关文章

服务端通知浏览器以下载的方式打开图片

import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServ

eclipse打开图片乱码解决方案

系统升级win10后,eclipse打开图片都默认使用txt文本打开,结果肯定乱码. 解决方案一:将图片拖到桌面->打开方式->其他->使用图片打开(下面勾选以后都这样打开). 解决方案二:点击Window- preference-general-editors-file associations,上面添加.JPG(图片格式为png就为.PNG,以此类推),下面添加打开方式PhotoViewer.FileAssoc.Tiff,就可以打开jpg不乱码了

c# 调用系统默认图片浏览器打开图片

private void OpenImage(string fileName) { try { Process.Start(fileName); } catch (Exception ex) { // LogHelper.WriteLog("调用默认看图软件打开失败", ex); try { string arg = string.Format( "\"{0}\\Windows Photo Viewer\\PhotoViewer.dll\", ImageV

C#调用电脑的默认图片浏览器软件打开图片

private void 调用Window显示ToolStripMenuItem_Click(object sender, EventArgs e) { string filePathName = "";//定义图像文件的位置(包括路径及文件名) OpenFileDialog ofd = new OpenFileDialog(); //添加打开对话框 ofd.Filter = "图像文件|*jpg;*.bmp;*.png,*.tif|所有文件|*.*"; //设置过

Win10 默认用Windows照片查看程序打开图片

::复制以下内容到记事本: @echo off&cd\&color 0a&cls echo 恢复Win10照片查看器 reg add "HKLM\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities\FileAssociations" /v ".jpg" /t REG_SZ /d PhotoViewer.FileAssoc.Tiff /f reg add "HKLM\SOFTWAR

Android 自己写一个打开图片的Activity

根据记忆中eoe的Intent相关视频,模仿,写一个打开图片的Activity 1.在主Activity的button时间中,通过设置action.category.data打开一个图片.这时代码已经可以运行,将使用系统默认的工具打开图片. Intent intentImage = new Intent(Intent.ACTION_VIEW); intentImage.addCategory(Intent.CATEGORY_DEFAULT); File file = new File("/sto

python的N个小功能(连接数据库并下载相应位置的图片)

##############################################################################################################连接数据库, mysqldb.py########################### ############################################################################### # -*- coding: u

eclipse里打开图片文件乱码解决方案

从eclipse中打开工程文件下的图片文件显示乱码,原因是你电脑系统上没有设置图片的默认打开方式,或者是图片的默认打开方式与eclipse不兼容,尤其是win8操作系统,用户一般将图片的默认打开方式设置为win8的图片浏览器,就是方格子的那种,每次打开图片比较慢,解决方式是将图片的默认打开方式改成windows照片查看器,注意,该步骤只需要在工程外面,任意选中一种图片,然后右键进行修改,需要兼顾jpg及png格式,两种格式都要修改默认打开方式,即可.eclipse里打开图片文件乱码解决方案,布布

解决ckeditor中文路径无法下载,无法显示图片问题

使用ckfinder上传的文件如果是中文路径,下载的时候会找不到 假如使用tomcat服务器,找到tomcat目录>conf文件夹的server.xml>用查找找到Connector这个 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" /> 这里的端口应该与项目使用的端口一致