从 服务器指定路径 下载一个文件。到d:/ 根目录下面。不能让用户选择下载路径。谁有源代码。谢谢。
(服务器是共享的,可以操作。)
(服务器是共享的,可以操作。)
解决方案 »
- 急! 初学velocity遇阻:找不到模板问题。。
- 遇到一难题
- 一个SPRING2.0与STRUTS2.0的配置错误,贴出报错信息和配置代码,恳请大家给予指点,我已经相当郁闷了。
- struct2的url-pattern
- 求教怎么把JAR文件倒到web_info 文件里去
- 转:两年的技术经历,在J2EE上疑惑
- 使用Tanghan,连接上数据库后看不见表里面的字段?
- 初学者,简单问题:在jb里开的webservices如果将其移植到项目中啊(tomcat4.0)?能给具体步骤最好了!!
- 救救我啊,关于JDBC DataSources问题,在部署EJB时,出现错误
- 急急急-----哪位大虾在EJB上实现过大字段(BLOB)存取
- 我把我的jsp放在rot目录下。。怎么不成功 非常感谢。求救
- 求JAVA对联
*从服务器中下载文件到本地*/
/*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:要保存的路径 如何传入参数。请高手指点。
这东西想一下就知道不靠ActiveX等技术,只通过浏览器是根本不可能做到的。否则安全性何在?!
客户端的话,那就简单了。
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();
}