Итак, я создал проект, где клиент может перетаскивать файлы на наш сервер, и все отлично работает! Теперь меня попросили, чтобы файлы загружались / передавались нашими клиентами через определенный диапазон портов (скажем, между 10000 и 11000 для аргументации). Я не знаю, как это сделать. Моя текущая функция загрузки выглядит примерно так:
Имя файла: Тест / 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 мой.
Я не уверен, что-то вроде кода ниже (из Вот) это путь, я никогда раньше не использовал функцию fsockopen.
$fp = fsockopen($host, $port, $errno, $errstr, $timeout);
$responding = 1;
if (!$fp) { $responding = 0; }
$tend = microtime(true);
fclose($fp);
Все ответы приветствуются. Спасибо.
Поскольку вы хотите, чтобы клиент загружал файл на другой порт, вам нужно будет подключить веб-сервер к этому порту. Вы можете указать текущему серверу прослушивать этот порт, но это ничего не изменит для снижения нагрузки на ваш основной веб-сайт, поэтому необходима отдельная машина. Новая машина должна быть настроена на прослушивание только порта загрузки файлов, но должна содержать ваш сервер (Apache и т. Д.), PHP и иметь доступ к сетевому хранилищу ваших файлов.
Если он у вас есть, вам может потребоваться настроить брандмауэр так, чтобы трафик поступал на правильный компьютер в зависимости от того, на какой порт он отправляется.
Фактический код PHP, который вы используете, на самом деле не будет отличаться от того, что вы работаете сейчас. Ваш JS-код нужно будет обновить, чтобы он отправлял сообщения на сервер, используя порт 10000 или что-то другое.
Вот простая диаграмма, которая может помочь.
Других решений пока нет …