首页服务器java从服务器下载文件?怎样通过java实现服务器上文件下载

java从服务器下载文件?怎样通过java实现服务器上文件下载

编程之家2023-10-2260次浏览

大家好,今天来为大家解答java从服务器下载文件这个问题的一些问题点,包括怎样通过java实现服务器上文件下载也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

java从服务器下载文件?怎样通过java实现服务器上文件下载

java FTP下载文件在代码中如何实现知道下载完成

你好,可以写个方法,这个方法返回一个boolean类型,只要返回true,就说明已经完成,

具体如下:一般get过程完成后,为出错就说明文件已经下载完成。

publicbooleandownloadFile(Stringhostname,intport,Stringusername,Stringpassword,StringremotePath,StringremoteFilename,StringsavePath){

longstart=System.currentTimeMillis();

log.info("开始登陆SSH服务器"+hostname);

try{

java从服务器下载文件?怎样通过java实现服务器上文件下载

if(sftp==null||!sftp.isConnected())

sftp=login(hostname,port,username,password);

if(sftp!=null&&session.isConnected()&&channel!=null&&channel.isConnected()&&session!=null&&session.isConnected()){

log.info("登陆成功,开始转换到文件目录:"+remotePath);

if(remotePath!=null&&!remotePath.trim().equals(""))

{

java从服务器下载文件?怎样通过java实现服务器上文件下载

sftp.cd(remotePath);

Filedir=newFile(savePath);

if(!dir.exists())

dir.mkdirs();

sftp.get(remoteFilename,savePath+remoteFilename);

log.info("成功从服务器上获取文件:"+remoteFilename+",耗时(秒):"+(System.currentTimeMillis()-start)/1000);

returntrue;

}

else

{

log.error("登陆失败:文件目录转换异常");

returnfalse;

}

}

else

{

log.error("登陆失败:连接=null");

returnfalse;

}

}catch(SftpExceptione){

log.error("接收文件"+remoteFilename+"时有SftpException异常【可能文件不存在】!");

returnfalse;

}

catch(Exceptionex)

{

log.error("接收文件"+remoteFilename+"时有Exception异常:"+ex.getMessage());

returnfalse;

}catch(Throwablet)

{

log.error("接收文件"+remoteFilename+"时有Throwable异常:"+t.getMessage());

returnfalse;

}finally

{

close();

}

}

怎样通过java实现服务器上文件下载

感觉楼上几位说的办法都是http协议,走的是jsp网站路线,也不失为一种可选的不错的办法.既然是jsp建站了,那也不妨再省事一些.http协议毕竟稳定性和速度较弱,改为websocket协议更佳.

再延伸一步,websocket协议对浏览器版本的要求太高,IE10以上才能带起来,怕你的浏览器版本达不到.可以换用Amf3协议,把jsp网页内植入一个flash小组件,让java和actionscript之间直接通信.

要么,抛开jsp站点不谈,只看底层的文件传输,就用tcp协议.你去服务器上弄个socketServer,你在本机弄个socket,两边对准了端口号,直接把文件抓下来算了.这个办法想必是最迎合你的提问的.你本来就是只想通过java语言传输,没考虑过弄jsp网站,没考虑过要牵扯到太多其它的语言,什么html, css, javascript, xml的.大家都知道,一旦建站,冒出来的语言就多了,就化简为繁了.

总起来说,不管怎么通信,走的皆是字节流,其实也就是字节数组byte[].把数组当作参数,从服务器端的socket写进去objectOutputStream.writeObject(array); objectOutputStream.flush();再从你本机的socket读出来objectInputStream.readObject();反正就是个txt记事本小文件,估计一瞬间就传完了,也不用在乎什么进度条了.

楼主试试看吧.

java web 怎么从服务器下载文件到客户端的指定位置

这个很简单啊,就是定义一个input file类型的,然后上传,获取上传的文件,用inputstream读取,然后用outputstream写入到你服务器的指定位置就行了。如果用struts来接收上传文件就简单了,只需要命名和jsp文件input file类型名称相同的字段就能获取上传文件了,file类型的。

/**新闻代表图片*/

private File newsPicture;//文件字段和jsp中文件name相同

private String newsPictureFileName;//文件名称,可以自动获取

private String newsPictureContentType;//文件类型,可以自动判断

//上传的共用方法,srcFile源文件,savePath保存的路径,fileName文件名称,你使用这个方法就可以上传了。

public static File uploadUtil(File srcFile,String savePath,String FileName){

InputStream is= null;

OutputStream os= null;

File toFile= null;

if(srcFile!=null){

try{

is= new FileInputStream(srcFile);

String fileName=(new Date().getTime())+FileName.substring(FileName.indexOf("."));

toFile= new File(ServletActionContext.getServletContext().getRealPath(savePath), fileName);

os= new FileOutputStream(toFile);

byte[] buffer= new byte[1024];

int length= 0;

while((length= is.read(buffer))> 0){

os.write(buffer, 0, length);

}

os.flush();

} catch(FileNotFoundException e){

e.printStackTrace();

} catch(IOException e){

e.printStackTrace();

}finally{

try{

is.close();

os.close();

} catch(IOException e){

e.printStackTrace();

}

}

}

return toFile;

}

java从服务器下载文件和怎样通过java实现服务器上文件下载的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

美国的服务器?美国服务器都有哪些戴尔t130服务器(戴尔T630和戴尔T130有什么区别)