href 超链接 下载

恩C 2016-03-07 06:41:25
jsp 页面有个超链接 ,连接地址为
http:\113.200.206.90:51580\record\RemoteRecord\record\2015\12\21\4006644808_18620975870_13950078951_000043538238.wav
这种远程服务器上的文件路径
这个路径数据我修改了;格式没变;

如果直接超链接 浏览器会直接打开播放文件,我想要的是下载,不是直接打开

我也知道 设置header 告诉浏览器下载

不解的问题是: 在网上看了 有本地文件下载 方式和网络文件下载方式。
new file ; new url?
我这个应该属于网络文件吧,远程服务器文件。
可是下载远程文件 还需要设置 本地保存路径。这个就不明白了,下载本地文件不需要设置保存路径,下载远程的就需要?

还有就是,我看大家写的 下载本地 才设置头文件,下载远程的都没有设置

希望大神能帮我解除疑惑,谢谢!
...全文
235 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Intboy 2016-03-09
  • 打赏
  • 举报
回复
引用 10 楼 ensey 的回复:
引用 7 楼 fengspg 的回复:
这里说的很清楚了。http://blog.csdn.net/longshengguoji/article/details/39433307
我给的路径是http网络文件,你给我推荐的是本地文件下载,大哥。用你说的这种方式下载是不行的
读取远程文件,再返回给客户端,跟读取本地文件一样
恩C 2016-03-08
  • 打赏
  • 举报
回复
引用 7 楼 fengspg 的回复:
这里说的很清楚了。http://blog.csdn.net/longshengguoji/article/details/39433307
我给的路径是http网络文件,你给我推荐的是本地文件下载,大哥。用你说的这种方式下载是不行的
恩C 2016-03-08
  • 打赏
  • 举报
回复
引用 6 楼 vswen5 的回复:

         public InputStream getDownload(){
		String agent = request.getHeader("USER-AGENT");
		if (null != agent){
			if (-1 != agent.indexOf("Firefox") || -1 != agent.indexOf("Chrome")) {
				// Firefox , Chrome
				try{
					this.fileName = new String(fileName.getBytes("ISO-8859-1"),"UTF-8");
				}catch (UnsupportedEncodingException e){
					e.printStackTrace();
				}
			}else{
				try {
					this.fileName = new String(fileName.getBytes("ISO-8859-1"),"GBK");
				}catch (UnsupportedEncodingException e){
					e.printStackTrace();
				}
				ServletActionContext.getResponse().setHeader("Content-Disposition","attachment;fileName=" + fileName);
			}
		}
		fileContentType = ServletActionContext.getServletContext().getMimeType(fileName)+";charset=UTF-8";

		InputStream inputStream = null;
		try {
			inputStream = new FileInputStream(SysConstants.FILE_PATH + super.getUserName() + "/" + fileName);
		}catch (FileNotFoundException e1){
			e1.printStackTrace();
		}

		return inputStream;
	}
        public String getFileName() {
		String name = "";
		try {
			name = new String(fileName.getBytes("UTF-8"), "ISO8859-1");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return name;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}
不知道这是不是你需要的
不明白你这代码要怎么调用,没有设置url文件,和filename参数呐
恩C 2016-03-08
  • 打赏
  • 举报
回复
引用 7 楼 fengspg 的回复:
这里说的很清楚了。http://blog.csdn.net/longshengguoji/article/details/39433307
引用 7 楼 fengspg 的回复:
这里说的很清楚了。http://blog.csdn.net/longshengguoji/article/details/39433307
这个是下载本地文件吧,如果文件是http文件呢,下载http文件 还需要设置文件保存路径,下载本地文件则不需要
Intboy 2016-03-08
  • 打赏
  • 举报
回复
vswen5 2016-03-08
  • 打赏
  • 举报
回复

         public InputStream getDownload(){
		String agent = request.getHeader("USER-AGENT");
		if (null != agent){
			if (-1 != agent.indexOf("Firefox") || -1 != agent.indexOf("Chrome")) {
				// Firefox , Chrome
				try{
					this.fileName = new String(fileName.getBytes("ISO-8859-1"),"UTF-8");
				}catch (UnsupportedEncodingException e){
					e.printStackTrace();
				}
			}else{
				try {
					this.fileName = new String(fileName.getBytes("ISO-8859-1"),"GBK");
				}catch (UnsupportedEncodingException e){
					e.printStackTrace();
				}
				ServletActionContext.getResponse().setHeader("Content-Disposition","attachment;fileName=" + fileName);
			}
		}
		fileContentType = ServletActionContext.getServletContext().getMimeType(fileName)+";charset=UTF-8";

		InputStream inputStream = null;
		try {
			inputStream = new FileInputStream(SysConstants.FILE_PATH + super.getUserName() + "/" + fileName);
		}catch (FileNotFoundException e1){
			e1.printStackTrace();
		}

		return inputStream;
	}
        public String getFileName() {
		String name = "";
		try {
			name = new String(fileName.getBytes("UTF-8"), "ISO8859-1");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return name;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}
不知道这是不是你需要的
恩C 2016-03-08
  • 打赏
  • 举报
回复
帖子不会沉吧
恩C 2016-03-08
  • 打赏
  • 举报
回复
引用 1 楼 oh_Maxy 的回复:
下载成实体文件,应该是通过文件流读出、写入的方式实现的吧,所以本地要创建个文件,供输出流来写。
但是我并不知道客户端 用户要保存到哪里,我不能写死路径吧,就算用jfilechooser文件选择器获取用户选择路径。这样就太麻烦了吧,原先就一个href要搞成这样么
恩C 2016-03-08
  • 打赏
  • 举报
回复
引用 2 楼 scmod 的回复:
这种右键另存为不是就可以了?
页面有个下载按钮,想实现点击下载,不要右键另存为
scmod 2016-03-07
  • 打赏
  • 举报
回复
这种右键另存为不是就可以了?
oh_Maxy 2016-03-07
  • 打赏
  • 举报
回复
下载成实体文件,应该是通过文件流读出、写入的方式实现的吧,所以本地要创建个文件,供输出流来写。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧