客户端IP 192.168.1.100
WEB应用服务器IP(上传的文件: a.txt 在此服务器生成并保存):192.168.1.101
文件存放服务器IP: 192.168.1.102(登陆用户名:admin 密码:admin 文件存放目录:C:/)现在我在客户端登陆“WEB应用服务器”的应用,触发事件,生成“上传的文件”的同时,将此文件(a.txt)上传到“文件存放服务器”,文件上传如何编码,各位朋友,能帮我封装一个方法吗?public void ftpUpload(String ipAddress,String userName,String passWord,String filePath,String uploadPath)
ipAddress:文件存放服务器IP地址 userName:文件存放服务器登陆用户名 passWord: 登陆密码 filePath:上传的文件路径 uploadPath:文件服务器存放文件夹
WEB应用服务器IP(上传的文件: a.txt 在此服务器生成并保存):192.168.1.101
文件存放服务器IP: 192.168.1.102(登陆用户名:admin 密码:admin 文件存放目录:C:/)现在我在客户端登陆“WEB应用服务器”的应用,触发事件,生成“上传的文件”的同时,将此文件(a.txt)上传到“文件存放服务器”,文件上传如何编码,各位朋友,能帮我封装一个方法吗?public void ftpUpload(String ipAddress,String userName,String passWord,String filePath,String uploadPath)
ipAddress:文件存放服务器IP地址 userName:文件存放服务器登陆用户名 passWord: 登陆密码 filePath:上传的文件路径 uploadPath:文件服务器存放文件夹
import org.apache.struts.upload.FormFile;
import sun.net.ftp.FtpClient;public class FileUploadAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res)
throws Exception
{
FileUploadForm theForm = (FileUploadForm)form;
String fileId = theForm.getFileId();
FormFile file = theForm.getFile();
InputStream is = null;
OutputStream os = null;
FtpClient ftpClient = null;
String fileName = file.getFileName();
try{ if(fileName.lastIndexOf(".")>0 && StringUtil.filterFileExt(StringUtil.getFileExt(fileName))){/**这个if条件你可以不用理*/
is = file.getInputStream();
String ftpType = Configer.getInstance("common").get("ftpType");
if(ftpType.indexOf(fileId)>0){/**判断是否为ftp上传*/
ftpClient = new FtpClient();
ftpClient.openServer(Configer.getInstance("common").get("ftpAddr"),Configer.getInstance("common").getInt("ftpPort"));/**打开服务器**/
ftpClient.login(Configer.getInstance("common").get("ftpWriteUser"),Configer.getInstance("common").get("ftpWritePassword"));/**登录到服务器*/
ftpClient.cd(Configer.getInstance("filePath").get(fileId));/**获得要访问的ftp服务器上的目录,文件将存到该目录下去*/
ftpClient.binary();
os = ftpClient.put(fileName);
}else{
File dir = new File(Configer.virtualRoot + Configer.getInstance("filePath").get(fileId));
dir.mkdirs();
os = new FileOutputStream(Configer.virtualRoot + Configer.getInstance("filePath").get(fileId) + fileName);
}
int bytesRead = 0;
byte[] buffer = new byte[8192];
while((bytesRead = is.read(buffer, 0, 8192)) != -1)/**一次传多少字节*/
{
os.write(buffer, 0, bytesRead);
}
}
else
{
throw new FileUploadException("FileUploadAction@execute 文件上传失败,"+fileName+" 文件类型不属于指定类型!");
}
}
catch(Exception e) {
e.printStackTrace();
throw new FileUploadException("FileUploadAction@execute 文件上传失败,请检查文件名是否为空,或者文件是否存在!");
}
finally{
if(is != null){
try{
is.close();
}catch(Exception e){
}
}
if(os != null){
try{
os.close();
}catch(Exception e){
}
}
if(file != null){
file.destroy();
}
希望对你有所帮助