2

phpを使用して大きなファイルをftpサーバーにアップロードしようとしています。小さいファイルをアップロードできますが、大きいファイルをアップロードできません。調べてみると、upload_max_filesizeとpost_max_sizeを設定し、ftpをパッシブモードに設定し、時間制限をneverに設定する必要があることがわかりました。時間制限を設定することができず、現在のところエラーは返されませんが、ファイルもアップロードされていません。一番下の線を見ると、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 />";
        }       
}

アップデート

PHPページからupload_max_filesize値を設定できないことを発見しました。また、.htaccessを機能させることができないようです。.htaccessファイルがあると、HTTPエラー500が発生します。また、php.iniにアクセスできません。

他にどうすればupload_max_filesize値を変更できますか?

詳しくは

Web管理者から、IIS Windowsベースのシステムを使用しているため、.htaccessファイルが機能しないと言われました。web.configを使用してファイルのアップロードサイズに影響を与える方法はありますか?

4

2 に答える 2

2

@AngeDeLaMortが正しく指摘しているように、PHP.iniの外部で構成値を設定するために省略表記を使用することはできません。

参照:PHPでupload_max_filesizeを変更する

このようにしてみてください。

ルートディレクトリに.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
于 2012-05-01T15:02:17.267 に答える
2

このサイトから: http://www.php.net/manual/en/ini.php

「upload_max_filesize」と「post_max_size」

タイプは PHP_INI_PERDIR です

つまり、エントリは「php.ini、.htaccess、または httpd.conf」で設定できます。したがって、スクリプトで設定することはできません。

- - 編集 - -

同様の質問: PHP で upload_max_filesize を変更する

--- 編集 2 ---

個人的には、同じようなこと (ftp 経由で大きなファイルをアップロードする) を行い、最終的に Java アプリケーションを作成したいと考えていました。大きなファイルを処理する場合、php は実際には最善の方法ではありません。ウェブブラウザはそれをあまり好みません。したがって、大きなファイルを処理するには、他の代替手段を検討することをお勧めします: (java、swf、javascript、...)

時間があれば試してみたいのはhttp://nodejs.org/です

于 2012-05-01T14:49:49.883 に答える