将文件从一台服务器上传到另一台服务器(通过 HTTP POST)

2024-01-10

我有一个在客户端计算机上运行的 Apache 服务器,并安装了 PHP。我已经安排了一项任务来自动创建数据库备份,并且工作正常。但将备份保存在系统运行的同一个硬盘上是没有意义的,所以我必须将其发送到其他地方。

起初,我尝试进行 PHP FTP 上传,但客户端的防火墙阻止了所有 FTP 连接,我无法解除阻止(他的公司不允许我)。

然后,我尝试使用 SMTP 将备份发送到电子邮件帐户。也没起作用。所有 SMTP 连接也被阻止(我知道......)。

我现在尝试通过 HTTP POST 请求访问网页(在我的服务器上),文件附加在页面标题上。这应该是可能的,因为这几乎就是浏览器使用文件输入对象所做的事情,对吧?我只是使用页眉发送多部分/数据。

我需要手动创建页眉吗?或者是否有任何脚本已经做到了这一点?


您可以使用curl http://php.net/curl通过 http 发送。假设您的文件是“/tmp/backup.tar.gz”,则为:

$ch = curl_init('http://clientserver.com/upload.php');
$ch = curl_setopt($ch, CURLOPT_POST, true);
$ch = curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => '@/tmp/backup.tar.gz'));
$ch = curl_setopt($ch, CURLOPT_USERPWD, 'username:password');

$result = curl_exec($ch);
if ($result === FALSE) {
   die(curl_error($ch));
}

这就是基础知识。你可能需要让它更健壮一点。假设接收服务器上的上传脚本是用 php 完成的,您可以通过以下方式访问该文件$_FILES['file'].

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文件从一台服务器上传到另一台服务器(通过 HTTP POST) 的相关文章

随机推荐

  • 赶上现代编程技术的一种方法

    我已经从事非专业编程大约 23 年了 发现我有点陷入困境 我找到了一个我喜欢的工具 并且年复一年地保持这种状态 不幸的是 这意味着我的编程落后于时代 我本身并不直接计划进行专业编程 但是 能够开发客户端 最近希望迁移到云 应用程序以供我的客
  • 如何从子域中删除主域 cookie

    是否可以从子域中删除主域 cookie 我正在使用单点登录 注销时我想删除主域 cookie 据我所知 你不能这样做 但是您不能将注销调用指向主域吗 想必您已经在登录调用中执行此操作 以便首先获取主域 cookie
  • 带有表行的 Javascript Onclick

    我的 JScript 代码有问题 我试图循环遍历表中的所有行并添加一个onclick事件 我可以得到onclick要添加的事件 但有几个问题 第一个问题是所有行最终都设置了错误的参数onclick event 第二个问题是它只能在 IE 中
  • 点与流程图上的 x 轴不对齐

    我有浮点数据 其中 x 轴上的点与线条不对齐 specifically take a look at this photo 这是我正在使用的原始数据 0 1327305600000 1989 1 1327392000000 3222 333
  • 我的文本框以编程方式添加在页面重新加载后丢失值后面的代码中。有什么办法可以解决这个问题吗?

    就像这个主题一样 我在通过按钮上的事件创建文本框时遇到问题 然后在重新加载后丢失了文本框中的值 我的代码 protected void Page Load object sender EventArgs e if IsPostBack Se
  • Android 片段:空构造函数真的需要吗?

    我有一个带有寻呼机和 FragmentStatePagerAdapter 的活动 我需要跨多个页面滑动 众所周知 这个适配器一次创建 3 个片段实例 一个是要显示的 一个是上一个 一个是下一个 我的活动使用只有一个构造函数的片段运行得非常好
  • 华为在手机锁定时关闭后台应用程序

    这是我第一次在这个论坛上提问 p 我制作了一个Android应用程序 它必须在后台运行 即当手机处于待机状态时才能恢复用户的位置 我使用服务和唤醒锁 该应用程序适用于SAMSUNG但我注意到HUAWEI如果应用程序不在受保护的应用程序列表中
  • Primefaces selectOneMenu 转换器已调用但不工作

    我看过其他问题this https stackoverflow com questions 17774367 selectonemenu converter and this https stackoverflow com question
  • 谷歌colab中的Python 3.5

    我正在 google colab 中运行用于深度学习的 python 代码 该代码需要 Python 3 5 如何在 google colab 中安装 Python 3 5 版本 这对我有用 apt get install python3
  • 我如何知道使用 kubectl 进入 kubernetes pod 的入口点或 cmd?

    我现在正在学习kubernetes 我想进入远程集群中的一个pod 但是 我不知道它的入口点 我找不到它使用 kubectl 描述 pod podname 如果你想访问Container POD 中的shell 可以使用以下命令 kubec
  • 在 AJAX 中将图像发布到 PHP

    我想使用 AJAX 将图像发送到 php 文件 这是我的JS code ajax type POST url http website com add image php data img img 那是我的PHP 但它不起作用 我也尝试更换
  • 使用 lodash 按多个字段对数组中的项目进行排序

    如何使用 lodash 按多个字段对一组对象进行排序 所以对于这样的数组 a a b 2 a a b 1 a b b 5 a a b 3 我期望这个结果 a a b 1 a a b 2 a a b 3 a b b 5 这在当前版本的 lod
  • Android 8.1.0 上屏幕关闭时 BLE 扫描不起作用

    我正在使用带有最新 Android 8 1 0 更新的 Pixel 我面临与 BLE 广告扫描相关的问题 每当我关闭屏幕 即按下电源按钮 时 我的扫描就会停止 打开屏幕后会立即重新启动 我已经检查了 BLE 的最新代码 谷歌新推出了这个功能
  • AngularJS 使用 $broadcast 帮助在控制器之间共享数据

    我一直在尝试使用 broadcast 和 on 但我无法让数据在两个控制器之间移动 在我的主网页上 我有一个按钮 每次点击它时都会向 var 添加 4 div div
  • 在laravel中获取不带扩展名的文件名?

    我用过Input file upfile gt getClientOriginalName 检索上传文件的名称 但给出带有扩展名的名称 例如qwe jpg 如何获得没有扩展名的名称 例如qwe在拉拉维尔 Laravel 使用 Symfony
  • PHP CLI 获取用户输入然后转储到变量中可能吗?

    是否可以使用 PHP CLI 从用户获取输入 然后将输入转储到变量中 然后脚本继续运行 就像C 一样cin功能 这可能吗 如果可以 那么如何实现呢 也许不仅是 PHP 还可以使用一些 Linux 命令 要在 php CLI 模式下从标准输入
  • 如何在 Epplus 饼图中显示带小数的百分比?

    在 EPPLUS 饼图中 默认情况下百分比自动四舍五入 如何以编程方式显示 2 位小数 10 75 而不是 11 我只提供值 整数 百分比由组件自动计算 在 EPPlus 中并没有真正看到设置它的选项 必须在Serie DataLabel
  • 仅当查询包含 FIRST_ROWS 或 ROWNUM 限制时,ResultSet.next 才会非常慢

    我使用执行本机查询 entityManager createNativeQuery sqlQuery query setMaxResults maxResults List
  • Robolectric,单击列表项时出现问题

    我一直在努力解决这个问题 我认为我没有得到关于 Robolectric 的一些基本知识 通常 一些谷歌搜索可以帮助我深入了解此类问题 但在这些和查看示例代码之间 我没有找到任何有用的东西 我试图模拟单击列表视图项并检查单击后是否启动了活动
  • 将文件从一台服务器上传到另一台服务器(通过 HTTP POST)

    我有一个在客户端计算机上运行的 Apache 服务器 并安装了 PHP 我已经安排了一项任务来自动创建数据库备份 并且工作正常 但将备份保存在系统运行的同一个硬盘上是没有意义的 所以我必须将其发送到其他地方 起初 我尝试进行 PHP FTP