`
zhao103804
  • 浏览: 124991 次
  • 性别: 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>

相关推荐

    Maven项目部署到服务器设置访问路径以及配置虚拟目录的方法

    本文介绍了Maven项目部署到服务器设置访问路径以及配置虚拟目录的方法,包括Tomcat虚拟目录的概念、Tomcat配置实例、设置远程服务器访问路径等知识点。这些知识点对于Maven项目的部署和访问具有重要的参考价值。

    C#实现把图片下载到服务器代码

    通过上述知识点,我们可以了解到C#实现将远程服务器上的图片下载到本地服务器的基本原理和实现步骤,同时也能了解到在实际开发中需要注意的诸多细节。这些知识点不仅适用于***环境,也同样适用于其他类型的应用程序...

    serv-u高版本虚拟路径配置实例教程.docx

    为了实现这一目标,我们需要将上级部门下发的文件统一存放在E盘的FTP目录下,然后通过虚拟路径配置,让这些文件在各个部门的根目录下可见。 ### 2. 服务器配置 首先,我们需要在Serv-U中添加用户,代表每个部门。...

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

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

    使用 Iisftpdr.vbs 列出FTP虚拟目录(支持远程与本地)

    在管理FTP服务器时,了解如何列出FTP虚拟目录是一项基本且重要的技能,尤其在涉及到服务器配置和管理权限的情况下。本文介绍了一个专门用于此目的的脚本工具——iisftpdr.vbs,它是Windows Server 2003系统中用于...

    C# 通过WebService上传视频文件到服务器虚拟机下源码

    这里,我们设置了正确的请求头以上传文件,并指定了Web Service的URL以及本地要上传的文件路径。 为了在服务器虚拟机上运行Web Service,我们需要IIS(Internet Information Services),它是Windows操作系统中的...

    使用 Iisftpdr.vbs 删除FTP虚拟目录(支持本地与远程)

    它用于指定到FTP站点内虚拟目录的路径。 - `/Name`:必需的参数,用于为虚拟目录指定名称。注意虚拟目录名不必保持唯一。 - `/s Computer`:可选参数,用于指定在其中运行脚本的远程计算机名或IP地址,不带反斜杠。...

    实验7虚拟主机网站建设--FTP.pdf

    为了上传自定义的网页,可以将本地的网页文件从本地目录拖放到远程服务器目录,或使用上传命令进行传输。上传完成后,远程服务器上的默认网页将被替换,完成网站建设的一部分。 【FTP在虚拟主机中的应用】 在虚拟...

    华为存储多路径软件(适用于RedHat/CentOS)

    此外,软件还可能集成到华为的管理系统中,实现远程管理和集中监控。 **五、兼容性与扩展性** 华为存储多路径软件与华为OceanStor系列存储设备高度兼容,确保无缝集成。同时,由于其面向Linux环境,因此也适用于...

    centos上iscsi+multipath多路径存储配置手册.pdf

    iSCSI 协议使得服务器能够通过 IP 网络连接到远程存储设备,从而实现存储资源的共享和虚拟化。 多路径存储 多路径存储(Multi-Path Storage)是一种存储技术,通过多个路径连接到同一个存储设备,实现存储资源的高...

    获取远程机器共享目录的物理路径的代码

    WMI是一种Windows平台下的管理技术,允许管理员访问和配置本地和远程计算机上的信息。在文件中提到,通过WMI可以获取远程机器上的共享目录的物理路径。其基本步骤包括: - 创建WbemScripting.SWbemLocator对象。 - ...

    瑞友天翼应用虚拟化系统远程代码执行漏洞

    该漏洞是由于瑞友天翼应用虚拟化系统存在缺陷,攻击者可利用该漏洞在未授权的情况下,构造恶意数据进行远程代码执行攻击,最终获取服务器最高权限。 漏洞类型:远程代码执行 漏洞影响范围:瑞友天翼应用虚拟化系统...

    ASP本地服务器--本地测试

    "ASP本地服务器"就是为了这个目的而存在的工具,它允许开发者在自己的计算机上搭建一个模拟的服务器环境,无需上传到远程服务器就能运行和测试ASP程序。 ASP的核心功能包括处理用户请求、执行服务器端脚本、与...

    LabVIEW开发环境与运行环境路径操作.rar

    在开发过程中,可能需要更改VI的路径,例如移动VI到不同的目录下,或者创建软链接来实现跨项目的资源共享。 - **数据存储路径**:在LabVIEW中,经常需要读取和写入文件,因此了解如何指定和管理数据存储路径至关...

    服务器与本地文件互通教程.docx

    通过将服务器文件系统映射到本地,用户可以在本地操作系统上直接编辑和管理远程服务器上的文件,而无需频繁地通过FTP或其他文件传输协议手动上传和下载。本教程将详细解释如何实现这一功能,主要依赖于WinSSHFS工具...

    【ASP.NET编程知识】C#实现把图片下载到服务器代码.docx

    在这个例子中,URL来自于`textBoxImgUrl`控件,而本地保存路径是通过`Server.MapPath`函数计算得到的,它将相对于应用根目录的虚拟路径转换为实际的物理路径。 一旦下载完成,`hvtImg.ImageUrl`被设置为下载图片的...

    ASP程序本地调试工具

    它允许开发者在本地目录下放置ASP文件,然后通过该工具启动一个服务器实例,以运行和测试这些文件。使用NetBox2.exe,你可以直接在本地执行ASP脚本,查看输出结果,同时工具还会提供错误信息,帮助追踪代码中的问题...

    虚拟形象插件 for discuz 2.x

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

    vscode 远程调试linux c++

    远程调试允许开发者在本地环境中使用熟悉的工具来调试运行在远程服务器上的代码,这在跨平台开发或远程团队协作时非常有用。 首先,确保你已经安装了VSCode,并在Linux服务器上配置好C++开发环境,包括GCC/G++...

Global site tag (gtag.js) - Google Analytics