Ⅰ 如何用java语言直接从web上下载数据,从而省去在网页上手动点击下载
URL url = new URL("http://219.219.114.10/infobin/select.dll");
URLConnection uc = url.openConnection();
InputStreamReader is = new InputStreamReader(uc.getInputStream());
int line;
StringBuffer sb = new StringBuffer("");
while((line=is.read())!=-1){
sb.append((char)line);
}
String str = sb.toString();
//解析其中的内容
//可以通过 找到有用的地址文件,然后利用如下
url = new URL(“有用的文件路径”);
BufferedInputStream in = new BufferedInputStream(url.openStream());
哈哈,得到它了,一切就ok啦
下面的会了吗,流操作,写到本地
Ⅱ java WEB 下载 特殊 文件
比如你点页面的一个超链接,超链接请求后台某个方法,方法中
byte[] buff=//你的文件字节数组
response.reset();
//这里的application/vnd.ms-excel表示是excel文件流,其他文件格式的流有不同写法
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.
addHeade("ContentDisposition", "attachment;filename=xxx.slx");
//直接下载二进制数据到本地文件
try {
response.getOutputStream().write(buff);
} catch (IOException e) {e.printStackTrace();
}
return null;
在页面点连接的时候就会启动下载
Ⅲ Javaweb中的文件下载实现
需要在响应头部加上一些标示,告诉浏览器这个是文件下载。
如果你用了框架比如struts,需要加如下配置
<result name="success" type="stream">
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<param name="inputName">fileStream</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">2048</param>
</result>
如果没有用框架,就手动在返回对象添加这些contentType
Ⅳ java web下载文件报错
写错位置了,兄弟,看看逻辑,你先创建了file,但没有填充内容,所以您的file.length()为0,您的setContentLength应该不是读取file.length(),而是您的需要输出的字节流。
Ⅳ Java Web如何实现远程下载
在项目根路径中建一个文件夹比如Files专门存放文件,可以在webRoot中建此文件夹,然后你在前台写一个<a>标签,比如这样
<a href=http://192.168.14.17:8080/DownLoad/Files/a.txt>下载</a>
这样就可以了
Ⅵ 【Java Web】文件下载方式有哪些,以及利弊
直接下载的不太安全,用户会看见你的路径的 这个不太好
字节流的安全 而且文件位置任意放 一般都是配置在属性文件里的 愿意放拿就放哪 ,但是也有点问题,上次我就遇到过一个 日文乱码的 至今没有解决
Ⅶ java web项目,文件保存在服务器硬盘上,那要下载某个文件的思路是什么,该怎么实现呢
采用一个FTP的方式,直接下载上传文件即可。
Ⅷ java web 怎么从服务器下载文件到客户端的指定位置
我脚得的吧,这应该是浏览器考虑的问题吧,比如谷歌浏览器,就有这么一个配置:

Ⅸ JavaWeb如何将文件下载到本地.要求不要有提示下载框的,直接点击后,就下载到某个本地盘下。
点击后转向执行的方法:先获取点击的文件路径,然后通过读取文件的IO流对象,放到缓冲流里面,然后向网络传输文件流。
Ⅹ JavaWeb下载文件,怎么获取文件下载完毕的状态
在Javaweb中,上传下载是经常用到的功能,对于文件上传,浏览器在上传的过程中是以流的过程将文件传给服务器,一般都是使用commons-fileupload这个包实现上传功能,因为commons-fileupload依赖于commons-io这个包,所以需要下载这两个包commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar。
1、搭建环境
创建Web项目,将包导入到项目lib下

3、实现文件下载
(第一种文件下载)
注意:该代码是直接访问Servlet类的
?
04142package com.load;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;//直接使用Http://localhost:8080/Test1/download进行下载,但是这个有缺陷,如果下载文件名中有中文,就会变成乱码现象!@WebServlet("/download")public class download extends HttpServlet {private static final long serialVersionUID = 1L;public download() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/plain;charset=utf-8");response.setCharacterEncoding("utf-8");response.setHeader("Location","中文.txt");response.setHeader("Content-Disposition", "attachment; filename=" + "账号.txt");OutputStream outputStream = response.getOutputStream();InputStream inputStream = new FileInputStream("E:/loads"+"/账号.txt");byte[] buffer = new byte[1024];int i = -1;while ((i = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, i);}outputStream.flush();outputStream.close();}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}
(第二种下载方法)
新建jsp页面选择下载
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>下载</title></head><body><a href="../DoDownloadServlet?filename=呵呵.txt">点击下载</a></body></html>
创建Servlet类进行下载(注意:该下载如果文件名是中文的话,一样会出现乱码现象)
package com.load;
import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspFactory;import javax.servlet.jsp.PageContext;import org.h
sqldb.lib.StringUtil;import com.jspsmart.upload.SmartUpload;import com.jspsmart.upload.SmartUploadException;@WebServlet("/DoDownloadServlet")public class DoDownloadServlet extends HttpServlet {private static final long serialVersionUID = 1L;public DoDownloadServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//得到下载文件的名称//String filename = request.getParameter("filename");//String filename = new String(FileName.getBytes("iso8859-1"),"UTF-8");//新建SmartUpload对象SmartUpload su = new SmartUpload();PageContext pagecontext = JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, 8192, true);//上传初始化su.initialize(pagecontext);//设置禁止打开该文件su.setContentDisposition(null);//下载文件try {su.downloadFile("/listener/"+filename);} catch (SmartUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}
(第三种下载的方法)
同上的jsp页面代码,这里就不再重复了。
新建Serlvet类,实现下载功能(注意:这里文件名就算是中文名,也不会出现乱码问题了!)
package com.load;
import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspFactory;import javax.servlet.jsp.PageContext;import org.hsqldb.lib.StringUtil;import com.jspsmart.upload.SmartUpload;import com.jspsmart.upload.SmartUploadException;@WebServlet("/DoDownloadServlet")public class DoDownloadServlet extends HttpServlet {private static final long serialVersionUID = 1L;public DoDownloadServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获得文件名称String path1 = request.getParameter("filename");//获得路径名称String path = request.getSession().getServletContext().getRealPath("/listener/"+path1);// path是根据日志路径和文件名拼接出来的File file = new File(path);String filename = file.getName();try {//判断是否是IE11Boolean flag= request.getHeader("User-Agent").indexOf("like Gecko")>0;//IE11 User-Agent字符串:Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko//IE6~IE10版本的User-Agent字符串:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.0; Trident/6.0)if (request.getHeader("User-Agent").toLowerCase().indexOf("msie") >0||flag){filename = URLEncoder.encode(filename, "UTF-8");//IE浏览器}else {//先去掉文件名称中的空格,然后转换编码格式为utf-8,保证不出现乱码,//这个文件名称用于浏览器的下载框中自动显示的文件名filename = new String(filename.replaceAll(" ", "").getBytes("UTF-8"), "ISO8859-1");//firefox浏览器//firefox浏览器User-Agent字符串://Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0} InputStream fis = new BufferedInputStream(new FileInputStream(path));byte[] buffer;buffer = new byte[fis.available()];fis.read(buffer);fis.close();response.reset();response.addHeader("Content-Disposition", "attachment;filename=" +filename);response.addHeader("Content-Length", "" + file.length());OutputStream os = response.getOutputStream();response.setContentType("application/octet-stream");os.write(buffer);// 输出文件os.flush();os.close();} catch (IOException e) {e.printStackTrace();}System.out.println(filename);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}