`
zhao103804
  • 浏览: 121478 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

本地图片上传到远程的虚拟目录下,远程路径的图片上传到本地路径

 
阅读更多

        对于上传图片的要求,将本地图片上传到远程的虚拟目录下,该怎么实现?

        在远程计算机上,在IIS上发布一个虚拟目录,该步骤如下:

 

 的目录。

 

完成虚拟目录后,根据要求现要将本地的上传到虚拟目录下,用java代码实现如下:

1、首先需要下载一个jar包,即:jcifs-1.3.14.jar  (已经上传了)
 2、编写java代码:

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.UnknownHostException;

import jcifs.smb.SmbException;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileOutputStream;
import jcifs.util.LogStream;

/**
 *
 * @author 秦芬
 *@since 2013 -12-18
 *本地图片上传到远程的虚拟目录下
 */
public class Smb {

 /**
  * @param args
  */
 
  private static LogStream log = LogStream.getInstance();  //打印日志
  private String url = "";      
  private SmbFile smbFile = null;
  private SmbFileOutputStream smbOut = null;
  private static Smb smb = null; //共享文件协议
 
  public static synchronized Smb getInstance(String url) {
    if (smb == null)
     return new Smb(url);
    return smb;
   }
  /**
   * @param url服务器路径
   */
  private Smb(String url) {
   this.url = url;
   this.init();
  }

 public void init() {
   try {
    log.println("开始连接...url:" + this.url);
    smbFile = new SmbFile(this.url);
    smbFile.connect();
    log.println("连接成功...url:" + this.url);
   } catch (MalformedURLException e) {
    e.printStackTrace();
    log.print(e);
   } catch (IOException e) {
    e.printStackTrace();
    log.print(e);
   }
  }

 
  public int uploadFile(File file) {
    int flag = -1;
    BufferedInputStream bf = null;
    try {
     this.smbOut = new SmbFileOutputStream(this.url + "/" + file.getName(), false);
     bf = new BufferedInputStream(new FileInputStream(file));
     byte[] bt = new byte[8192];
     int n = bf.read(bt);
     while (n != -1) {
      this.smbOut.write(bt, 0, n);
      this.smbOut.flush();
      n = bf.read(bt);
     }
     flag = 0;
     log.println("文件传输结束...");
    } catch (SmbException e) {
     e.printStackTrace();
     log.println(e);
    } catch (MalformedURLException e) {
     e.printStackTrace();
     log.println(e);
    } catch (UnknownHostException e) {
     e.printStackTrace();
     log.println("找不到主机...url:" + this.url);
    } catch (IOException e) {
     e.printStackTrace();
     log.println(e);
    } finally {
     try {
      if (null != this.smbOut)
       this.smbOut.close();
      if (null != bf)
       bf.close();
     } catch (Exception e2) {
      e2.printStackTrace();
     }
    }

    return flag;
   }

 public static void main(String[] args) {
    String remoteUrl = "http://192.168.2.196/hopsca_images/"; 
    String localFile = "E:\\images\\a.jpg";  //本地要上传的文件
    File file = new File(localFile);
    Smb smb = Smb.getInstance(remoteUrl);
    smb.uploadFile(file);// 上传文件

 }

}
 该代码上传到Smb.rar压缩包中,可以直接拿来运行。

 

 

第二种就是将虚拟目录的文件保存到本地中,代码如下:

//虚拟目录的文件保存到本地中
 public static  boolean saveUrlAs(String longUrl, String localUrl) {
  //此方法只能用户HTTP协议
    try {
      URL url = new URL(longUrl);
      HttpURLConnection connection = (HttpURLConnection) url.openConnection();
      connection.setDoOutput(true);
      /**从虚拟目录的文件保存到本地中**/
      DataInputStream in = new DataInputStream(connection.getInputStream());
      DataOutputStream out = new DataOutputStream(new FileOutputStream(new File(localUrl)));
    
      byte[] buffer = new byte[4096];
      int count = 0;
      while ((count = in.read(buffer)) > 0) {
       out.write(buffer, 0, count);
      }
      out.close();
      in.close();
      System.out.println("成功====-");
      return true;
    }
    catch (Exception e) {
     e.printStackTrace();
    System.out.println("失败!!!!!!!!");
      return false;
    }
  }
 
 public static void test(){
   String longUrl = "http://192.168.2.196/hopsca_images/"; 
  String localUrl = "E:\\images\\a.jpg";
  saveUrlAs(longUrl, localUrl);
 }
 
 public static void main(String[] args) {
  test();
  System.out.println("测试");
  
 }

 

测试都通过了的

 

 

 

  • 大小: 392 KB
分享到:
评论
1 楼 天涯陌路 2016-07-21  
报这个错
jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>

相关推荐

    spring boot2.0图片上传至本地或服务器并配置虚拟路径的方法

    最近写了关于图片上传至本地文件夹或服务器,上传路径到数据库,并在上传时预览图片。本文通过实例代码给大家分享spring boot2.0图片上传至本地或服务器并配置虚拟路径的方法,需要的朋友参考下

    Chevereto图片上传程序 v2.5.2.zip

    1.本地/远程两种图片上传方式; 2.后台文件管理系统; 3.调整图片大小; 4.社交网站分享按钮; 5.TinyURL短地址服务; 6.支持自定义主题模板; 7.多张图片同时上传; 8.缩略图功能; 9.以及一些基本的功能...

    虚拟形象插件 for discuz 2.x

    添加GD库版本和形象图片路径两个参数变量,图片路径参数可实现调用远程图片,对于没有空间存放图片包的会员可减少负担,但失去了主动升级的能力(因为你的图片文件是别人的呀,无法控制添加减少。) 将...

    xlight ftp服务器

    内置的用户虚拟目录隔离 - 每个用户有独立的虚拟目录,用户看不到其他用户的虚拟目录。不再象传统FTP服务器,为了防止用户看到其他人的虚拟目录,而担心如何锁定用户在自己的主目录。 分级的虚拟目录系统 - 提供公共...

    论文研究-虚拟手的远程控制实现.pdf

    针对远程控制虚拟手传输数据量大,容易丢包和出现时延的情况,提出了一种基于行为数据库的参数传递方法。利用3DS MAX软件对虚拟手建模并用OpenGL在PC机上显示;将手势数据测量装置采集的手势原始数据转化成虚拟手的...

    Chevereto图片托管 3.10.13.zip

    1.本地/远程两种图片上传方式; 2.后台文件管理系统; 3.调整图片大小; 4.社交网站分享按钮; 5.TinyURL短地址服务; 6.支持自定义主题模板; 7.多张图片同时上传; 8.缩略图功能; 9.以及一些基本的功能...

    若冰.net远程教育系统(电子版)

    2) 在IIS建立一个新的虚拟目录,把RBWebEdu目录下的文件全部复制到该目录下;3) 使用DataBase下的数据库文件,建立数据库及存储过程; 4) 将web.config文件中appSettings节中的数据库联接修改:数据库名、数据库...

    若冰.net远程教育系统(电子版)

    2) 在IIS建立一个新的虚拟目录,把RBWebEdu目录下的文件全部复制到该目录下; 3) 使用DataBase下的数据库文件,建立数据库及存储过程; 4) 将web.config文件中appSettings节中的数据库联接修改:数据库名...

    eWebEditor Version 8.3.0 商业版

    优化“站外全路径模式”功能,使内容路径支持非HTTP开头路径,支持虚拟目录形式或站内文件处理等。 修正IE9标准模式时的一些问题,包括:在某些情况光标丢失内容总插在最前或插入异常内容、浏览网络文件库时的错误...

    Java Web版SVN 远程配置管理工具

    或者通过Tomcat下的conf文件夹中的配置文件来配置虚拟目录访问。 2、配置SVN仓库地址:将解压后的config.Properties文件打开修改对应的配置项: fileDir=路径为SVN服务器的仓库路径 authz=权限配置文件名 passwd=...

    协通XT800免费远程控制软件 v5.0.4 企业版.zip

    4.远程文件管理功能:管理远程电脑文件,支持上传、下载目录和文件,删除、创建、重命名等操作,可替代传统的FTP服务。 5.文件传输记录保存:无论采用哪种方式发送或接收了任何文件,文件传输记录中均保存了详细...

    壁纸更换器源代码vb

    远程配置文件、图片远程路径 可支持多种读取方法或协议 (HTTP/FTP/共享路径/本地路径) ' 4。后台运行,占用系统资源小。(物理内存约 600KB,虚拟内存约 1400KB) ' 5。绿色软件,不产生垃圾信息,不必安装直接...

    草路网CMS个人建站系统

    如果放在虚拟目录,请打开inc/config.asp修改网站路径 请确保你的空间支持FSO及AspJpeg组件,否则可能有些功能无法使用 二级目录安装请按照以下方式修改方可正常使用: 1. 修改inc/config.asp 中 SitePath="/" ...

    Windows服务器安全加固.doc

    "已启用 " " "证储存凭证 " " "5 "网络访问:可远程访问得注册表 "全部删除 " " "路径 " " "6 "网络访问:可远程访问得注册表 "全部删除 " " "路径与子路径 " " "7 "网络访问:可匿名访问得共享 "全部删除 (根据实 " ...

    草路网CMS v1.0 美化版.zip

    如果放在虚拟目录,请打开inc/config.asp修改网站路径 请确保你的空间支持FSO及AspJpeg组件,否则可能有些功能无法使用   二级目录安装请按照以下方式修改方可正常使用: 1. 修改inc/config.asp 中 ...

    自编桌面壁纸自动换~比微软的好!!自编VB更改系统墙纸!附带源码!

    远程配置文件、图片远程路径 可支持多种读取方法或协议 (HTTP/FTP/共享路径/本地路径) ' 4。后台运行,占用系统资源小。(物理内存约 600KB,虚拟内存约 1400KB) ' 5。绿色软件,不产生垃圾信息,不必安装直接...

    LABVIEW虚拟仪器从入门到测控应用130例.(电子工业.李江全.任玲.廖结安.温宝琴)

    书名:《LabVIEW虚拟仪器从入门到测控应用130例》(电子工业出版社.李江全.任玲.廖结安.温宝琴) PDF格式扫描版,全书分为13章,共486页。2013年4月出版。 内容简介 本书从实际应用出发,通过130个典型实例系统地...

    详解pycharm连接远程linux服务器的虚拟环境的方法

    一、前提条件 1、确保linux服务器已经安装好虚拟环境,并且虚拟环境已经...3、选择本地和服务器的文件路径 三、采用服务器的解释器 1、file-setings-Priject interpretor-SSH输入服务的IP和用户名 2、选择解释器

    asp.net 空间测试

    本程序包括查看服务器的基本信息(包括服务器操作系统,服务器IIS版本,.NET解释引擎版本,HTTP访问端口,服务端脚本执行超时时间,虚拟目录绝对路径,常见组件支持情况 Access数据库 ,FSO,CDONTS邮件发送,...

Global site tag (gtag.js) - Google Analytics