需求:
项目部署于A服务器上,访问upload.jsp,上传图片.jpg。。。。。
后台接收处理,将图片存放于B服务器上。图片存放位置是根据程序不定的存放于不同的自动生成的文件夹
目前困惑:怎么获取到远程服务器地址,使之成为我图片上传的路径
现在的思路,有人介绍用jcifs-1.1.11.jar,这个可以在远程服务器上创建文件夹
实现代码:
Java code
try{
SmbFile smbFile2=new SmbFile("smb://administrator:mypupa95@10.2.0.95/e$/bb");
smbFile2.mkdirs();
in.close();
}catch(Exception e){
e.printStackTrace();
}
以前用的上传代码是这样的:
Java code
public String upload(String dir, FormFile formFile) throws Exception {
Date date = new Date();
//取欲上传的文件的名字和长度
String fname = formFile.getFileName();
//将上传时间加入文件名
int i = fname.indexOf(".");
String name = String.valueOf(date.getTime());
String type = fname.substring(i + 1);
fname = name + "." + type;
InputStream in = formFile.getInputStream(); //获得上传文件的InputStream
File uploadFile = new File(dir); //创建把上传数据写到目标文件的对象
if (!uploadFile.exists() || uploadFile == null) { //判断指定路径是否存在,不存在则创建路径
uploadFile.mkdirs();
}
String path = uploadFile.getPath() + "/" + fname;
FileOutputStream fout = new FileOutputStream(path);
System.out.println("fout:"+fout);
byte buffer[] = new byte[8192];
int count = 0;
//开始向上传路径中刚建立的文件写入数据,每次写8K字节
while((count = in.read(buffer)) > 0){
fout.write(buffer, 0, count);
}
in.close();
fout.close();
formFile.destroy(); //上传成功后销毁当前上传文件的资源
return fname; //返回图片名称
}
不知道该怎么结合了,希望大家能指点一下。。或者如果有其他的办法也可以。。谢谢
文件上传可以使用apache的开源jar包upload.jar,网上很多例子,可以google下。
另外,存到服务器上,如果想从服务器上获取文件,只需要能根据文件名称找到文件在服务器上的绝对路径就可以了,然后通过File读取文件流,写给客户端,那么在浏览器上会自动提示您去保存文件。
两种方式
1.使用共享网络磁盘的形式,在当前的服务器简历一个另一台服务器的网络磁盘,直接操作读写这个网络磁盘即可
2.使用FTP操作另外这台服务器