sftp上传到远程服务器

开发遇到一个需求,需要将图片通过sftp上传到远程服务器上,之前没用过这个功能,折腾了我好几天才搞定,下面记录下我的处理方法:

$sftp = ‘ssh2.sftp://‘;//连接sftp
$conn = ssh2_connect(‘IP‘,‘端口‘);//登录
ssh2_auth_password($conn,"user","password");
$result = ssh2_sftp($conn);//判断是否存在目录HM
if (!file_exists($sftp.$result.‘/HM/‘)) {
  $dir = ssh2_sftp_mkdir($result, ‘/HM/‘,0777,true);
}else{
  $dir = true;
}
if($dir){
  //realpath方法将相对路径转为绝对路径
  $send = ssh2_scp_send($conn,realpath($localfile),$remotefile);    //开始这种方法是测试可行的,后来ftp账号权限被修改,导致进不到根目录,然后不知为什么就不行了,之后就只能曲线救国采用下面的方法
}else{
  $send = false;
}
//远程服务器创建一个文件$sftpStream = fopen($sftp.$result.$remotefilename, ‘w‘);//获取本地文件
$data_to_send = file_get_contents(realpath($localfilename));//将本地文件写入到远程文件中
$send = fwrite($sftpStream, $data_to_send);//关闭文件流
fclose($sftpStream);
时间: 2024-10-08 01:00:12

sftp上传到远程服务器的相关文章

项目整合ckeditor实现图片上传到远程服务器

最近手头上的一个Java项目需要做一个门户网站,其中有一个模块就是用来发布最新的业界安全动态的模块,因此需要用到后台发布新闻的功能:刚开始的时候在网上搜了一下,大部分都是关于PHP和.NET的,关于Java不多,而且查到的都是说用ckeditor+ckfinder来实现,ckeditor实现文本的编辑,ckfinder实现图片的上传,刚开始我也是准备用ckeditor+ckfinder来实现的,但是后来研究ckfinder的时候不知道如何配置ckfinder的图片上传路径问题,网上可以找到好多例

MySQL执行sql查询并上传至远程服务器

最近项目中有需要做一个shell脚本,可以对一个数据库执行sql操作,并将结果转为txt,筛选结果用tab隔开,保存至一个远程服务器上,以供其他人用Excel读取用txt中的内容. MySQL中将结果保存下来,有两种方案,一种是在sql语句中增加INTO OUTFILE语句,并且可以定制化输出的格式.但是这种方法留下的文件在数据库所在的服务器上,而期望的是将文件放在执行脚本的机器上. 后来实现是不改变sql语句的内容,在脚本中将结果保存到本地/tmp目录下,再用curl上传到远程服务器上,下面抽

linux自动备份文件 并上传到远程服务器 脚本实现

(1)在服务器上创建备份目录,并赋予权限 mkdir -p /backup/bakdata  #新建数据备份目录(2)完成备份脚本操作新建脚本文件      vi bakdata.sh添加以下内容: #!/bin/sh     dateTime=`date +%Y_%m_%d`    #当前系统时间     days=7    #删除7天前的备份数据s     orowner=bakuser   # 备份到此用户下     bakdescdir=/DATA/bakmdata     #备份文件到

php把文件上传到远程服务器上例子

在这里我们利用curl实现把本地服务器的文件通过curl发送请求给远程服务器的php文件接受就实现了上传,还一个是利用ftp来上传方法也是php中的curl操作ftp服务器进行上传. 我这里写的是用curl的代码 本地代码如下: <?php header('content-type:text/html;charset=utf8'); $curl = curl_init(); $data = array('img'=>'@'. dirname(__FILE__).'/img/login.gif'

Jenkins打包上传至远程服务器

一,设置远程服务器信息 点击高级,设置远程服务器密码等信息. 二,打包上传 在配置页,构建模块,选择如下: 配置上传文件以及上传后执行的脚本 三.保存配置,打包测试. 原文地址:http://blog.51cto.com/bluehumor/2124519

linux备份数据库并上传至远程服务器(定时执行shell进行ftp上传)

#========================start shell 脚本============================ #!/bin/bash #定义备份数据库时使用的用户名和密码 db_user="root" db_passwd="111111" #定义FTP服务器地址.用户名.密码.目录 ftp_url=113.108.8.80 ftp_user=ftpuser ftp_passwd=111111 ftp_dir=/mysql_backup/xx

将本地文件上传到远程服务器

问题:由于系统在局域网(能访问外网)内,但外网无法请求局域网内服务器文件和进行处理文件. 解决:建立文件服务器,用于存储文件及外网调用. 客户端(文件上传): package cn.hkwl.lm.util; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; imp

SpringMVC结合Ajaxfileupload异步多文件上传至远程服务器

<input type="file" id="playeraddress" name="playeraddress" /> <input type="file" id="cover" name="cover" /> //这里就是两个file id自己定义 $.ajaxFileUpload({     url : web_path+'upload/upload.do

Xshell5下利用sftp上传下载传输文件

sftp是Secure File TransferProtocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.sftp与 ftp有着几乎一样的语法和功能.SFTP为 SSH的一部分,是一种传输档案至Blogger伺服器的安全方式.其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来