2015-07-20 77 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