Я пытаюсь загрузить большие файлы с php на ftp-сервер. Я могу загрузить небольшие файлы, но у меня возникли проблемы с загрузкой больших файлов. Я просмотрел его и обнаружил, что мне нужно установить upload_max_filesize и post_max_size, установить ftp в пассивный режим и установить ограничение по времени на никогда. Мне не повезло с установкой ограничения по срокам, и то, что у меня сейчас, не возвращает никаких ошибок, но оно также не загружает файл. Если вы посмотрите на строку if (!$upload) {
внизу, она должна что-то повторить, но это не так. Что еще более важно, он просто не работает. Любое понимание того, что происходит не так или что мне нужно сделать, чтобы сделать эту работу? Спасибо!
ini_set('upload_max_filesize', '50M'); ini_set('post_max_size', '50M'); $conn_id = ftp_connect($ftp_server); // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // check connection if ((!$conn_id) || (!$login_result)) { echo "FTP connection has failed!"; echo "Attempted to connect to $ftp_server for user $ftp_user_name"; exit; } // turn passive mode on ftp_pasv($conn_id, true); if($_FILES['upload_file']['name']!=''){ $source_file = $_FILES['upload_file']['tmp_name']; $destination_file = $_FILES['upload_file']['name']; // upload the file $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); // check upload status if (!$upload) { echo "FTP upload has failed!<br />"; } else { echo "Uploaded $source_file to $ftp_server as $destination_file<br />"; } }
Я обнаружил, что не могу установить значение upload_max_filesize с php-страницы; Кроме того, я не могу получить .htaccess для работы: если у меня есть файл .htaccess, это приводит к ошибке HTTP 500. Кроме того, у меня нет доступа к php.ini.
Как еще я могу изменить значение upload_max_filesize?
Мой веб-администратор сказал мне, что я нахожусь в системе на основе IIS, поэтому файлы .htaccess не будут работать. Есть ли способ повлиять на размер загрузки файла с помощью web.config?
С этого сайта: http://www.php.net/manual/en/ini.php
'upload_max_filesize' и 'post_max_size'
имеют тип PHP_INI_PERDIR
что означает, что запись может быть установлена в «php.ini, .htaccess или httpd.conf». Поэтому вы не можете установить его в своем скрипте.
— Редактировать —
Аналогичный вопрос: изменение upload_max_filesize на PHP
— Редактировать 2 —
Лично я хотел делать то же самое (загружать большие файлы через ftp) и заканчивать тем, что писал java-приложение. Для обработки больших файлов php не самый лучший способ. Веб-браузеру это не очень нравится. Итак, для обработки больших файлов я бы предложил посмотреть на другую альтернативу: (java, swf, javascript, …)
Что-то, что я хотел бы попробовать, когда у меня есть время http://nodejs.org/
как справедливо указано @AngeDeLaMort, вы не можете использовать сокращенную нотацию для установки значений конфигурации вне PHP.ini.
ссылка: изменение upload_max_filesize на PHP
попробуйте сделать это таким образом.
создайте файл .htaccess в корневом каталоге и добавьте следующее.
php_value upload_max_filesize 50M php_value post_max_size 50M php_value max_execution_time 200 php_value max_input_time 200