【问题标题】:PHP move_uploaded_file over specific portsPHP move_uploaded_file 通过特定端口
【发布时间】:2015-07-21 06:24:47
【问题描述】:

好的,所以我创建了一个项目,客户端可以将文件拖放到我们的服务器上,一切都很好!现在,我被要求让我们的客户在特定端口范围内上传/传输的文件(为了争论,假设在 10000 到 11000 之间)。我不知道如何做到这一点。我当前的上传功能如下所示:

文件名:test/upload.php

$dir = "path/to/directory/";
$tempFile = $_FILE['file']['tmp_name'];
$tagetFile = $dir.$_FILE['file']['name'];
move_uploaded_file($tempFile, $targetFile);

$_FILE 是正在上传的文件。

请忽略上面代码中的任何语法或拼写错误,它目前完美无缺。我删除了很多代码,以简单地了解我的代码当前正在做什么。

如果要对 PHP 进行任何配置更改,他们需要专门针对此目录,因为我们网站的其余部分需要保留在当前端口上。我不确定从哪里开始指定用于文件传输的端口。文件传输纯粹是客户端到服务器,反之亦然。我们确实有一个 FTP 服务器设置,但是如果可能的话,我们希望保持关闭它。我不确定我所问的是否可行。

我正在使用 Dropzone.js 插件(来自这里:http://www.dropzonejs.com/),但是所有 PHP 代码都是我的。

我不确定下面的代码(来自here)是否可行,我以前从未使用过 fsockopen 函数。

$fp = fsockopen($host, $port, $errno, $errstr, $timeout); 

$responding = 1;
if (!$fp) { $responding = 0; } 

$tend = microtime(true);

fclose($fp);

欢迎所有答案。谢谢。

【问题讨论】:

  • 您是尝试通过将文件发送到不同端口上的不同服务来保存文件服务器端,还是希望客户端将其上传到不同端口?
  • 我们希望文件上传发生在另一个端口上。其中一些文件可能需要几分钟才能传输,我们可以同时传输 100 个这样的大文件。我们正在寻求减少负载并在远离我们公共网站的特定端口范围内进行文件传输
  • 更改端口并不能真正减少负载。
  • @Evert 如果它是不同的服务器,它会这样做。

标签: php port file-transfer


【解决方案1】:

由于您希望客户端将文件上传到不同的端口,因此您需要在该端口上建立一个 Web 服务器。您可以告诉您当前的服务器在该端口上侦听,但这无助于减少您的主网站上的负载,因此需要一台单独的机器。新机器必须设置为仅侦听文件上传端口,但需要包含您的服务器(Apache 等)、PHP,并有权访问您的文件的网络存储位置。

如果您有,您可能需要配置防火墙,以便流量根据发送到的端口进入正确的机器。

您使用的实际 PHP 代码与您现在使用的代码并没有什么不同。您的 JS 代码需要更新,以便使用端口 10000 或您选择的任何内容发布到服务器。

这是一个可能有帮助的简单图表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 2015-08-15
    相关资源
    最近更新 更多