java上传图片到另一台服务器上,如何解决?
需求:
项目部署于A服务器上,访问upload.jsp,上传图片.jpg。。。。。
后台接收处理,将图片存放于B服务器上。图片存放位置是根据程序不定的存放于不同的自动生成的文件夹
目前困惑:怎么获取到远程服务器地址,使之成为我图片上传的路径
现在的思路,有人介绍用jcifs-1.1.11.jar,这个可以在远程服务器上创建文件夹
实现代码:
try{ SmbFile smbFile2=new SmbFile("smb://administrator:mypupa95@10.2.0.95/e$/bb"); smbFile2.mkdirs(); in.close(); }catch(Exception e){ e.printStackTrace(); } 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; //返回图片名称 }