从服务器指定路径下载一个文件到d:/ 根目录下面

时间:2022-01-03 12:30:42
从 服务器指定路径 下载一个文件。到d:/  根目录下面。不能让用户选择下载路径。谁有源代码。谢谢。
(服务器是共享的,可以操作。)

16 个解决方案

#1


这类代码网上应该有很多的

#2



*从服务器中下载文件到本地*/
/*url:文件存放在服务器的地址;target:要保存的路径*/     
 
public String DownloadFile(String url,String target){
          URLConnection con=null;
          URL theUrl=null;
          try {
              theUrl=new URL(url);//建立地址
              con = theUrl.openConnection();//打开连接
              con.setConnectTimeout(30000);
              con.connect();//连接
          } catch (MalformedURLException e) {
              Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
              return "给定的URL地址有误,请查看";
          }
          catch (IOException e) {
              Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
              return "无法连接到远程机器,请重试!";
          }
          jLabel5.setText("√");
          Process++;
          File file = new File(gbl_ParentPath+"/UpdateTemp");
          if(file.exists()==false){
              file.mkdir();
          }
          String type = con.getContentType();
          if (type != null) {
              byte[] buffer = new byte[4 * 1024];
              int read;
              try {
                  FileOutputStream os = new FileOutputStream(target);
                  InputStream in = con.getInputStream();//重定向输入
                  while ((read = in.read(buffer)) > 0) {//读取输出
                      os.write(buffer, 0, read);//写入本地文件
                  }
                  os.close();
                  in.close();
                  jLabel6.setText("√");
                  Process++;
              } catch (FileNotFoundException e) {
                  Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
                  return "所要下载的文件不存在!";
              }catch (IOException e) {
                  Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
                  return "读取远程文件时出错!";
              }
          } else {
              return "文件未找着:"+url;
          }
          return "";
      }


这个是我从网上找的,可是我不清楚 url:文件存放在服务器的地址 和 target:要保存的路径 如何传入参数。请高手指点。

#3


楼上的 下载是正确的,只需修改成自己想要的情况就行,思路是这样

#4


怀疑做不到。

#5


如果可以做到,我首先下载一个病毒到你的机器上面!


这东西想一下就知道不靠ActiveX等技术,只通过浏览器是根本不可能做到的。否则安全性何在?!

#6


学习下。

#7


引用 5 楼 chdw 的回复:
如果可以做到,我首先下载一个病毒到你的机器上面!


这东西想一下就知道不靠ActiveX等技术,只通过浏览器是根本不可能做到的。否则安全性何在?!

楼主又没说自动下载。。。让客户端点下载点东西有你说的那么恐怖吗。。。人家又不是要做木马

#8


学习下

#9


引用 5 楼 chdw 的回复:
如果可以做到,我首先下载一个病毒到你的机器上面!


这东西想一下就知道不靠ActiveX等技术,只通过浏览器是根本不可能做到的。否则安全性何在?!


这个

#10


 已经等了一天了,高手帮帮忙吧 

#11


这个是在服务器上运行的程序还是在客户端上运行的程序?

#12


服务器端的话,就要用到ActiceXObject了,而且还要用户确认
客户端的话,那就简单了。

#13


用浏览器是肯定不行的

#14


 是在 2个服务器端之间 运行的,从这个服务器复制到另外一个服务器 。你们谁有源代码 贴出来 

#15


估计不太好搞

#16


// 设置响应头和下载保存的文件名
response.reset();
response.setContentType("APPLICATION/OCTET-STREAM; charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"" + sSrcFile + "\""); 


// 打开指定文件的流信息 
java.io.FileInputStream fileInputStream = null; 
java.io.OutputStream os = null;
try{
fileInputStream = new java.io.FileInputStream("文件服务器端路径");
// 写出流信息 
byte buffer[] = new byte[65000];
int i; 
os = response.getOutputStream();
while( (i=fileInputStream.read(buffer, 0, 65000))>0 ) { 
os.write(buffer, 0, i);

os.flush();
}catch(Exception ex){
throw new Exception("写文件失败", ex);
}finally{
if(fileInputStream!=null){
try{
fileInputStream.close(); 
fileInputStream = null;
}
catch(Exception ex){}
}
if(os!=null){
try{
os.close(); 
os = null;
}
catch(Exception ex){}
}
//out.clear();
}

#1


这类代码网上应该有很多的

#2



*从服务器中下载文件到本地*/
/*url:文件存放在服务器的地址;target:要保存的路径*/     
 
public String DownloadFile(String url,String target){
          URLConnection con=null;
          URL theUrl=null;
          try {
              theUrl=new URL(url);//建立地址
              con = theUrl.openConnection();//打开连接
              con.setConnectTimeout(30000);
              con.connect();//连接
          } catch (MalformedURLException e) {
              Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
              return "给定的URL地址有误,请查看";
          }
          catch (IOException e) {
              Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
              return "无法连接到远程机器,请重试!";
          }
          jLabel5.setText("√");
          Process++;
          File file = new File(gbl_ParentPath+"/UpdateTemp");
          if(file.exists()==false){
              file.mkdir();
          }
          String type = con.getContentType();
          if (type != null) {
              byte[] buffer = new byte[4 * 1024];
              int read;
              try {
                  FileOutputStream os = new FileOutputStream(target);
                  InputStream in = con.getInputStream();//重定向输入
                  while ((read = in.read(buffer)) > 0) {//读取输出
                      os.write(buffer, 0, read);//写入本地文件
                  }
                  os.close();
                  in.close();
                  jLabel6.setText("√");
                  Process++;
              } catch (FileNotFoundException e) {
                  Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
                  return "所要下载的文件不存在!";
              }catch (IOException e) {
                  Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
                  return "读取远程文件时出错!";
              }
          } else {
              return "文件未找着:"+url;
          }
          return "";
      }


这个是我从网上找的,可是我不清楚 url:文件存放在服务器的地址 和 target:要保存的路径 如何传入参数。请高手指点。

#3


楼上的 下载是正确的,只需修改成自己想要的情况就行,思路是这样

#4


怀疑做不到。

#5


如果可以做到,我首先下载一个病毒到你的机器上面!


这东西想一下就知道不靠ActiveX等技术,只通过浏览器是根本不可能做到的。否则安全性何在?!

#6


学习下。

#7


引用 5 楼 chdw 的回复:
如果可以做到,我首先下载一个病毒到你的机器上面!


这东西想一下就知道不靠ActiveX等技术,只通过浏览器是根本不可能做到的。否则安全性何在?!

楼主又没说自动下载。。。让客户端点下载点东西有你说的那么恐怖吗。。。人家又不是要做木马

#8


学习下

#9


引用 5 楼 chdw 的回复:
如果可以做到,我首先下载一个病毒到你的机器上面!


这东西想一下就知道不靠ActiveX等技术,只通过浏览器是根本不可能做到的。否则安全性何在?!


这个

#10


 已经等了一天了,高手帮帮忙吧 

#11


这个是在服务器上运行的程序还是在客户端上运行的程序?

#12


服务器端的话,就要用到ActiceXObject了,而且还要用户确认
客户端的话,那就简单了。

#13


用浏览器是肯定不行的

#14


 是在 2个服务器端之间 运行的,从这个服务器复制到另外一个服务器 。你们谁有源代码 贴出来 

#15


估计不太好搞

#16


// 设置响应头和下载保存的文件名
response.reset();
response.setContentType("APPLICATION/OCTET-STREAM; charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"" + sSrcFile + "\""); 


// 打开指定文件的流信息 
java.io.FileInputStream fileInputStream = null; 
java.io.OutputStream os = null;
try{
fileInputStream = new java.io.FileInputStream("文件服务器端路径");
// 写出流信息 
byte buffer[] = new byte[65000];
int i; 
os = response.getOutputStream();
while( (i=fileInputStream.read(buffer, 0, 65000))>0 ) { 
os.write(buffer, 0, i);

os.flush();
}catch(Exception ex){
throw new Exception("写文件失败", ex);
}finally{
if(fileInputStream!=null){
try{
fileInputStream.close(); 
fileInputStream = null;
}
catch(Exception ex){}
}
if(os!=null){
try{
os.close(); 
os = null;
}
catch(Exception ex){}
}
//out.clear();
}