当前位置: 技术问答>java相关
高分提问关于Applet下载一个文件的问题。
来源: 互联网 发布时间:2015-05-10
本文导语: 我有一个Applet,作为客户端与服务器上的一个应用程序通过TCP/IP相连着。我现在要在Applet中按下一个按钮后就下载服务器上应用程序所在目录下的一个文本文件。服务器的应用程序不在WEB根目录下,也就是说那个要下...
我有一个Applet,作为客户端与服务器上的一个应用程序通过TCP/IP相连着。我现在要在Applet中按下一个按钮后就下载服务器上应用程序所在目录下的一个文本文件。服务器的应用程序不在WEB根目录下,也就是说那个要下载的文本文件不在服务器的WEB根目录下。
请问这个功能怎么实现?
谁能帮我解决这个问题要多少分都可以,可以贴多个帖子给你分。
请问这个功能怎么实现?
谁能帮我解决这个问题要多少分都可以,可以贴多个帖子给你分。
|
你可以看看SAK,里面有你要解决的方法。
当然,你也可以在服务器上另写一个服务程序,然后用socket 下载。
当然,你也可以在服务器上另写一个服务程序,然后用socket 下载。
|
哈哈,我是菜鸟一只。这个问题我以前回答过。我正好编过一个程序,把服务器上没有数字签名、与.class在同一个目录下的文件一把头读到 Applet 的函数,希望对你有帮助:
public int DownLoadRemoteFile()
{
URL fileURL;
InputStream input;
DataInputStream fd;
String x;
int i,y,Length;
byte FileBuffer[];
x=getDocumentBase().toString(); // 构造数据文件完整的 URL
y=x.lastIndexOf("/");
x=x.substring(0,y+1);
try // 打开数据文件
{
fileURL=new URL(x+"/"+getParameter("FILENAME"));
}
catch (MalformedURLException e)
{
fileURL=null;
}
try // 打开下载输入流
{
input=fileURL.openStream();
}
catch (IOException e)
{
input=null;
}
fd=new DataInputStream(input); // 打开数据流
FileBuffer=new byte[90480]; // 为文件开辟存储空间,已经文件大小是 90480
try
{
fd.readFully(FileBuffer); // 把文件读进来
}
catch(IOException e)
{
}
try // 关闭数据流
{
fd.close();
}
catch(IOException e)
{
fd=null;
}
try
{
input.close();
}
catch(IOException e)
{
input=null;
}
return 0;
}
不过, 要在 .htm 文件里加入:
如果数据文件与 .class 不在同一个目录,那只要修改构造文件名部分的代码就可以了。
public int DownLoadRemoteFile()
{
URL fileURL;
InputStream input;
DataInputStream fd;
String x;
int i,y,Length;
byte FileBuffer[];
x=getDocumentBase().toString(); // 构造数据文件完整的 URL
y=x.lastIndexOf("/");
x=x.substring(0,y+1);
try // 打开数据文件
{
fileURL=new URL(x+"/"+getParameter("FILENAME"));
}
catch (MalformedURLException e)
{
fileURL=null;
}
try // 打开下载输入流
{
input=fileURL.openStream();
}
catch (IOException e)
{
input=null;
}
fd=new DataInputStream(input); // 打开数据流
FileBuffer=new byte[90480]; // 为文件开辟存储空间,已经文件大小是 90480
try
{
fd.readFully(FileBuffer); // 把文件读进来
}
catch(IOException e)
{
}
try // 关闭数据流
{
fd.close();
}
catch(IOException e)
{
fd=null;
}
try
{
input.close();
}
catch(IOException e)
{
input=null;
}
return 0;
}
不过, 要在 .htm 文件里加入:
如果数据文件与 .class 不在同一个目录,那只要修改构造文件名部分的代码就可以了。