请问如何用java或标准c实现从服务器端下载文件功能?
你的服务器是什么规范?HTTP?FTP?还是说要顺便写一个服务端出来?
如果是要写服务端的,自己搜索,网上有。
如果是HTTP协议和FTP协议的,java版本的见代码
InputStream ios=new URL("http://19216811/文件bomzip所在的WEB目录/bomzip")openConnection()getInputStream();
BufferedOutputStream bout=new BufferedOutputStream(new FileOutputStream("c:/存放目录/bomzip"));
byte buff[]=new byte[1024];
int count;
while((count=iosread(buff))>0){
boutwrite(buff, 0, count);
}
iosclose();
boutclose();
如果要C的话,用socket做,看一下HTTP协议规范,很简单可以做到文件传输的。
ublic HttpServletResponse download(String path, HttpServletResponse response) {
try {
// path是指欲下载的文件的路径。
File file = new File(path);
// 取得文件名。
String filename = filegetName();
// 取得文件的后缀名。
String ext = filenamesubstring(filenamelastIndexOf("") + 1)toUpperCase();
// 以流的形式下载文件。
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fisavailable()];
fisread(buffer);
fisclose();
// 清空response
responsereset();
// 设置response的Header
responseaddHeader("Content-Disposition", "attachment;filename=" + new String(filenamegetBytes()));
responseaddHeader("Content-Length", "" + filelength());
OutputStream toClient = new BufferedOutputStream(responsegetOutputStream());
responsesetContentType("application/octet-stream");
toClientwrite(buffer);
toClientflush();
toClientclose();
} catch (IOException ex) {
exprintStackTrace();
}
return response;
}
0条评论