Загрузка файла FTP через веб-страницу - Почему он не работает для больших файлов? - PullRequest
0 голосов
/ 03 июня 2011

В настоящее время мне не нравятся проблемы с загрузкой больших файлов, поэтому я надеюсь, что кто-то может помочь с этим!

У меня есть этот скрипт для загрузки, который отлично работает с небольшими файлами, однако, когда я пробую большие файлы, я получаю сообщение об ошибке «Имя файла не может быть пустым», которое я нахожу очень запутанным.

Загрузка идет на сторонний ftp-хост.

Это скрипт как он есть: -

    $file = $_FILES['ufile']['tmp_name'];
    $remote_file = $_FILES['ufile']['name'];

    $conn_id = ftp_connect("www.ftphostinguk.com");
    $ftp_user_name = "****";
    $ftp_user_pass = "***********";

    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

    if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {
      echo "successfully uploaded $file\n";
    } else {
     echo "There was a problem while uploading $file\n";
    }

    ftp_close($conn_id);

Я думаю, что меня больше всего смущает, почему он работает для маленьких файлов, а не для больших?

Заранее спасибо.

Изменить, чтобы добавить: Когда я использую «echo» для отображения имени файла, я получаю пустой ответ для файла большего размера. Мне интересно, не понимаю ли я фундаментальный процесс загрузки файла таким образом? Я предположил, что временный файл был загружен на FTP-сервер, но возможно ли, чтобы файл был загружен первым на веб-сервер?

Ответы [ 3 ]

3 голосов
/ 03 июня 2011

Скорее всего, ваш PHP-скрипт истекает, попробуйте добавить их в начало страницы и настроить параметры (300 секунд - 5 минут):

ini_set('upload_max_filesize', '10M');  
ini_set('post_max_size', '10M');  
ini_set('max_input_time', 300);  
ini_set('max_execution_time', 300); 
1 голос
/ 03 июня 2011

Это распространенная проблема, поскольку PHP не принимает большой загруженный файл ($_FILES)

Вы можете изменить поведение в php.ini:

ini_set('max_input_time','');
ini_set('upload_max_filesize', '');  
ini_set('post_max_size', '');  
0 голосов
/ 04 июня 2011

Я думаю, что ответы, которые были предоставлены, могли бы решить мою проблему, если бы я получил доступ к php.ini, к сожалению, нет, и, как видно из моих сегодняшних исследований, моя проблема связана с ограничениями файла webhosts.1002 * Итак, чтобы решить мою проблему, я выбрал другой угол атаки, с которого можно атаковать.Я создал форму, которая регистрируется непосредственно в веб-интерфейсе ftphost - установка net2ftp.Это не то решение, которое я хотел, но кроме изменения веб-хостинга, оно кажется единственным жизнеспособным.Еще раз хотел бы поблагодарить знающих людей здесь за их вклад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...