2015-07-20 116 views
0

好的,所以我创建了一个项目,客户端可以将文件拖放到我们的服务器上,并且所有的工作都很棒!现在我已经要求我们的客户端上传/传输的文件在特定的端口范围内(比如说10000到11000之间的参数)。我不知道如何做到这一点。我现在的上传功能看起来是这样的:PHP move_uploaded_file通过特定端口

文件的名称:测试/ 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); 

欢迎所有的答案。谢谢。

+0

您是否试图通过将文件服务器端发送到单独端口上的其他服务来保存文件服务器端,还是希望客户端将其上传到不同的端口? – AndrewR

+0

我们希望文件上传发生在另一个端口上。其中一些文件可能需要几分钟才能传输,我们可能会同时传输100个这样的大文件。我们希望减少负载,并在远离公共网站的特定端口范围内发生文件传输。 – ctwheels

+0

更改端口并不能真正减少负载。 – Evert

回答

0

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

如果您有防火墙,您可能需要配置防火墙,以使流量进入正确的机器,具体取决于发送到的端口。

您使用的实际PHP代码与您现在工作的实际情况没有任何区别。你的JS代码将需要更新到它使用端口10000或任何你选择的服务器发布到服务器。

下面是一个简单的图表,可能会有所帮助。 Simple diagram