Web 服务器上的 PHP 将图像发送到另一台服务器并返回结果

2024-03-18

我正在努力实现这一切 我有一个 PHP 文件index.php运行在客户端上传文件的 Web 服务器 (WAS) 上。

我有另一台足够强大的服务器(GPU)来处理这些文件。 我的用例是,客户上传通过a发送的图像POST请求index.php。现在,它必须将文件发送到另一台服务器 (GPU),并在 GPU 上发送另一个 PHP 文件,例如process.php必须拍摄该图像并对其进行处理。

到目前为止,我认为我可以用 PHP 实现上述内容cURL图书馆。

我的问题主要是如何将处理后的图像返回给客户端?

我该如何制作process.php将处理后的图像发送回index.php并将其返回给客户?

这必须是一项例行任务,但我将不胜感激在实施此任务时提供的任何帮助。

代码为index.php,我将文件存储在网络服务器上,因为处理完成后我需要显示比较(之前/之后)。我还没有实施process.php

<?php
$ds = DIRECTORY_SEPARATOR; 
$storeFolder = 'uploads';

if (!empty($_FILES)) {
    $tempFile = $_FILES['file']['tmp_name'];
    $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds;
    $targetFile =  $targetPath. $_FILES['file']['name'];
    move_uploaded_file($tempFile,$targetFile);
}

function cURLcheckBasicFunctions() {
  if( !function_exists("curl_init") &&
      !function_exists("curl_setopt") &&
      !function_exists("curl_exec") &&
      !function_exists("curl_close") ) return false;
  else return true;
} 

if( !cURLcheckBasicFunctions() ) 
{ echo "UNAVAILABLE: cURL Basic Functions"; }

// $url = "129.132.102.52/process.php";
$url = "dump_test.php";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST, 1);

$fp = fopen($targetFile, "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$reply = curl_exec($ch);
curl_close($ch);
fclose($fp);

echo $_FILES['file']['name'];
?>

抱歉,久等了。 这是 WS 中的脚本,它将从客户端接收文件并将其发送到 GPU 服务器。请注意,我更改了通过curl 发送文件的方式(这是不正确的):

<?php

$ds = DIRECTORY_SEPARATOR;
$storeFolder = 'uploads';

if (!empty($_FILES)) {
    $tempFile = $_FILES['file']['tmp_name'];
    $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds;
    $targetFile =  $targetPath. $_FILES['file']['name'];
    move_uploaded_file($tempFile,$targetFile);
}

if(!cURLcheckBasicFunctions() )
{ echo "UNAVAILABLE: cURL Basic Functions"; }

// $url = "129.132.102.52/process.php";
$url = "dump_test.php";

$file = new CURLFile($tempFile);

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'file' => $file,
]);

/**
 * As you can see in the script below, the GPU will echo the processed
 * file and we will capture it here.
 */
$processedImage = curl_exec($ch);
curl_close($ch);

/**
 * And now you can do anything with the processed file.
 * For example, let's save it into a file.
 */
file_put_contents('processed_image.jpg', $processedImage);

function cURLcheckBasicFunctions() {
  if( !function_exists("curl_init") &&
      !function_exists("curl_setopt") &&
      !function_exists("curl_exec") &&
      !function_exists("curl_close") ) return false;
  else return true;
}

这是 GPU 服务器中的脚本(这将是process.php):

<?php

$tempFile = $_FILES['file']['tmp_name'];

// Here you would process the file....

// Let's pretend you have the full path to the processed image in the $processedFilePath var.
// Now we will output the processed file contents so the WS server will receive it.

// The header isn't necessary but let's put it.
header('Content-Type: image/jpg');

echo file_get_contents($processedFilePath);

该脚本适用于 PHP 5.5+。如果您使用的是旧版本,我们必须更改 WS 脚本中发送文件的方式。

希望这就是您正在寻找的。

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

Web 服务器上的 PHP 将图像发送到另一台服务器并返回结果 的相关文章

随机推荐

  • hmailserver 错误 - 与数据库的连接不可用

    亲爱的先生 我尝试在我的家用电脑上制作网络邮件服务器 所以我下载并安装 hmailserver 但是当我尝试连接它时 出现错误 与数据库的连接不可用 当我看到日志文件时 它有以下错误 请帮助我 ERROR 2920 2013 10 02 0
  • @FXML 注释和 FXMLLoader 类未解析为 Java 11 和 JavaFX 11 中的类型

    早些时候 我的项目曾经在 Java 8 上运行 但现在我使用 Java 11 和 JavaFX 11 现在自 Java 11 以来 JavaFX 已与 Java 解耦 我还没有下载 JavaFX SDK 但在 pom xml 中添加了以下依
  • 如何在不向下移动行的情况下将表情符号插入到 NSTextView 中?

    如何将表情符号插入NSTextView不向下移动线 如果我将表情符号字符插入NSTextView 整条线将向下移动几个像素 如果我删除表情符号字符 它会移回到原来的位置 另一方面 如果我将表情符号插入NSTextField 即使该行中的文本
  • 使用 IAM 角色时 AWS boto3 InvalidAccessKeyId

    我使用预先指定的帖子 网址上传到 S3 并从 S3 下载 预签名的 url post 是使用 Lambda 函数中的 boto3 生成的 它是使用 zappa 部署的 当我添加我的AWS SECRET ACCESS KEY and AWS
  • 如何在 Python 中从文件夹外部访问模块? [复制]

    这个问题在这里已经有答案了 如何从另一个文件夹访问模块 这是文件结构
  • wordpress获取当前用户

    我的 WordPress 目录中有一个用于某些模板应用程序的目录 apacheWWW wordpress jtpc 在我的应用程序中我想要 WordPress 当前用户 ID 我可以在一页中执行此操作 但在另一页中出现错误 这就是我获取用户
  • 硒 while 循环不工作

    所以我开始掌握 while 循环的窍门 但是当在 selenium 代码上使用 while 循环时 我遇到了不足 我几乎尝试将一个任务复制 10 次 代码如下 Main py from selenium import webdriver f
  • python os.path.realpath 无法正常工作

    我有以下代码 os chdir os path dirname os path realpath file test path append os getcwd os chdir os path dirname os path realpa
  • mysql - 将行从一个表移动到另一个表

    如果我有两个结构相同的表 如何将一组行从一个表移动到另一个表 行集将从选择查询中确定 例如 customer table person id person name person email 123 tom email protected
  • 查询字符串由 Spring 框架解码

    我在这里遇到一个奇怪的问题 但不确定这是否是错误 该项目在Spring框架下运行 风景
  • XMLHttpRequest.upload.onprogress 不适用于 HTTPS

    Issue 我有一个页面 用户可以在其中上传文件FormData and an XMLHttpRequest 上传文件工作正常 但是upload onprogress is only上传时工作从 HTTP 连接 HTTPS HTTP 我已经
  • 数据库查询:如何计算多列的最大值

    假设我有下表 claim date person type 01 01 2012 adult 05 05 2012 adult 12 12 2012 adult 12 12 2012 adult 05 05 2012 child 05 05
  • 如何设置java库路径进行处理

    我正在使用 PDE 运行处理草图 但出现以下错误 验证java library path属性设置正确 你们中有人能告诉我如何解决这个问题吗 您可以在命令行上设置它 java Djava library path
  • 发布网站到IIS,服务器锁定dll文件

    我已经为这个问题苦苦挣扎了大约一周 我正在尝试使用 FTP 将我的 MVC 网站发布到我的 IIS 服务器 唯一的问题是 当我传输文件时 MVC 总是锁定一些 DLL 文件 System Web MVC 等 并在 10 分钟后释放它们 这个
  • 存在性反模式,如何避免

    下面的似乎有效 但看起来很笨拙 data Point Point Int Int data Box Box Int Int data Path Path Point data Text Text data Color Color Int I
  • C#中的[FromBody]属性有什么作用?

    有没有一个函数 FromBody 属性 我的意思是 当我使用它时 public async Task SetUser FromBody User user 当我使用时 public async Task SetUser User user
  • Angular 5 与 Bootstrap 4 不工作

    我创建了一个新的 Angular 5 项目 之后我按照给出的指示进行操作Angular CLI GitHub 页面 https github com angular angular cli wiki stories include boot
  • 使用 javascript 动态更新表

    我有一个页面 我在其中向服务器发送 ajax 请求 页面上有一个表格 显示一些数据 服务器返回一个 json 对象 它是对象列表 并且不包含页面的任何布局 我只想更新表rows通过返回的 json 如何在不使用第三方库而仅使用 jquery
  • 获取双 SIM 卡 Android 手机中的两个 SIM 卡号码

    我想获取双 SIM 卡设备中的两个 SIM 卡号码 使用 API gt 21 需要许可android Manifest permission READ PHONE STATE public class SplahActivity exten
  • Web 服务器上的 PHP 将图像发送到另一台服务器并返回结果

    我正在努力实现这一切 我有一个 PHP 文件index php运行在客户端上传文件的 Web 服务器 WAS 上 我有另一台足够强大的服务器 GPU 来处理这些文件 我的用例是 客户上传通过a发送的图像POST请求index php 现在