0

PHP でファイル アップローダー コントロールを使用して CSV ファイルをアップロードしようとしています。ファイル サイズが 10 MB を超えると、アップロードされず、ページの実行がハングします。設定しました

ini_set( "upload_max_filesize", "50M" ); ini_set( "post_max_size", "50M" );

8 MB までのファイルをアップロードすると、正常に動作します。同じページでファイル サイズのアップロードに関連する設定を行ったイベントがまだ存在する理由について混乱しています。私を助けてください。

前もって感謝します、

以下は私のPHPコードです

<?php

  set_time_limit(0); ini_set('display_errors', 1); ini_set( "upload_max_filesize", "100M" );   ini_set( "post_max_size", "100M" );


ini_set( "session.save_handler", "files" ); session_start(); header ('Last-Modified: '.gmdate("D, d M Y H:i ").' GMT');   header ('Expires: '.gmdate("D, d M Y H:i ").' GMT');   header ('Cache-Control: no-cache, must-revalidate');   header ('Pragma: no-cache');

if ($_FILES['import']['error'] == UPLOAD_ERR_OK )           {
            $tmpName = $_FILES['import']['tmp_name'];
            $csvName = $_FILES['import']['name'];
            $mime = $_FILES['import']['type'];
            $validMimes = array('text/csv');


            if(!strpos($csvName, '.csv'))
            {
                $errMsg = ' [' . $csvName . '] is INVALID csv file (<i>csv only</i>)';
            }

            if ( is_uploaded_file($tmpName) && !isset($errMsg) ) // upload photo file then save author if uploaded file is VALID
            {
                // upload photo to server
                $filename = 'uploads/products/';

                $pathParts = pathinfo($csvName);

                $photoFile = _generateUniquePhoto($pathParts['extension']);

                //move_uploaded_file($tmpName, $filename . $photoFile);

                //chmod($filename . $photoFile, 0777);

                // save to database
                $fullfilename = $filename.$photoFile;
                //$this->data['University']['add_logo'] = $photoFile;

                $ftp_server = "XXXXX";
                $ftp_user_name = "XXXX";
                $ftp_user_pass = "XXXXX";


                // set up basic connection
                $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; 
                } else 
                {
                       //echo "Connected to $ftp_server, for user $ftp_user_name";
                }

                // upload the file
                $destination_file1 = "httpdocs/volhub/client/$fullfilename";
                $sourcefile1 = "$tmpName";
                $upload = ftp_put($conn_id, $destination_file1, $sourcefile1, FTP_BINARY);  // line 30

                // check upload status

                ftp_close($conn_id); }
4

2 に答える 2

1

ini_set()であるため、これらの設定を で変更することはできませんPHP_INI_PERDIR

php.ini 自体または (Apache の場合).htaccessファイルで変更する必要があります。スクリプトが実行を開始してini_set()呼び出されるまでに、PHP はリクエストを受け入れるか拒否するかを決定しています。

での設定変更についてはこちら.htaccessをご覧ください。

于 2012-04-27T10:29:58.153 に答える
0

私もこれを持っていて、解決策を見つけることができませんでした。しばらくして、「チャンク」機能を備えた JavaScript アップローダーを使用することにしました。私が使用しているものはplupload.comで見つけることができます。私の意見では、作業は非常に簡単です。

于 2012-04-27T10:27:53.853 に答える