需求:
项目部署于A服务器上,访问upload.jsp,上传图片.jpg。。。。。
后台接收处理,将图片存放于B服务器上。图片存放位置是根据程序不定的存放于不同的自动生成的文件夹
目前困惑:怎么获取到远程服务器地址,使之成为我图片上传的路径
现在的思路,有人介绍用jcifs-1.1.11.jar,这个可以在远程服务器上创建文件夹
实现代码:
以前用的上传代码是这样的:
项目部署于A服务器上,访问upload.jsp,上传图片.jpg。。。。。
后台接收处理,将图片存放于B服务器上。图片存放位置是根据程序不定的存放于不同的自动生成的文件夹
目前困惑:怎么获取到远程服务器地址,使之成为我图片上传的路径
现在的思路,有人介绍用jcifs-1.1.11.jar,这个可以在远程服务器上创建文件夹
实现代码:
1
2
3
4
5
6
7
|
try
{
SmbFile smbFile2=
new
SmbFile(
"smb://administrator:mypupa95@10.2.0.95/e$/bb"
);
smbFile2.mkdirs();
in.close();
}
catch
(Exception e){
e.printStackTrace();
}
|
以前用的上传代码是这样的:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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;
//返回图片名称
}
|