在项目中可能有时候上传的文件比较大。如果用http方式来进行文件上传的话,问题比较多。
所用可以采用ftp的方式,但是一般都是做的web项目,要在浏览器中嵌入,因为对于java的话,有applet的方式,当然applet用户需要安装JRE。一般的JRE大概在
10M多点。applet是在一个“沙箱”里运行,不能对用户的文件进行读取,如果要读取本地的文件,就需要对其进行授权。需要用到java_home/bin目录下的一些工具。
下面的网上找的一些关于文件上传的代码和操作方式,稍微修改了一下。
一、下面是applet的代码,其他需要用到commons-net-3.0-src包,可以到apache的官网网站上下载。
之所以用src的包是因为需要把applet的代码和commons-net的代码都打成一个jar包。所以把commons-net-3.0-src下的源码和applet的代码放到同一个目录下,
然后打成jar包。
/**
* 功能:删除指定远程路径
* @param remoteDir
* @return
* @throws Exception
* boolean
* 范例:
*/
public boolean deleteDir(String remoteDir)throws Exception {
boolean isDel= false;
this.ftpClient.removeDirectory(remoteDir);
int status = this.ftpClient.getReplyCode();
if(status == 250){
isDel = true;
System.out.println("成功删除FTP服务器中目录:"+ remoteDir);
}
return isDel;
}
public static void main(String[] args)throws Exception {
ContinueFTP myFtp =new ContinueFTP();
try {
long l1 = System.currentTimeMillis();
System.out.println("begin:"+ l1);
if (myFtp.connect("192.168.1.101",21, "cfd","123456")) {
String mkDir = myFtp.CreateDirecroty("TTT/ccc/");
if (mkDir != null&& !mkDir.trim().equals(""))
System.out.println("mkDir success:"+mkDir);
//myFtp.download( "/XA01B03H05/5.mp3",file,"0");
//myFtp.upload("/XA01B03H05/5.mp3", "/云台山.mpg");
//myFtp.delete_file("/tmp.txt");
//String str = new String("电视剧");
//myFtp.ftpClient.removeDirectory("/kkk/jk/");
//myFtp.ftpClient.makeDirectory(new String(str.getBytes("GBK"),"iso-8859-1"));
myFtp.disconnect();
long l2 = System.currentTimeMillis();
System.out.println("end:"+ l2);
System.out.println("remaining:"+(l2-l1));
}
} catch (IOException e) {
System.out.println("连接FTP出错:"+e.getMessage());
}
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public boolean isSaveFileName() {
return isSaveFileName;
}
public void setSaveFileName(boolean isSaveFileName) {
this.isSaveFileName= isSaveFileName;
}
}