1

最近、ローカル マシンとホストされたサーバーの両方でレスポンシブ ファイル マネージャーを実行していますが、コードは同じですが、それぞれに異なる問題が発生しています。これらの問題はすべてファイルのアップロードに関連しています。現在テストされているファイルはすべて JPEG ファイルのみであり、2 MB を超える JPEG ファイルはアップロードできません。

共有の問題:

ローカル マシンとホスト サーバーの両方で、アップロードされた画像が 8 MB を超えると、次のエラー メッセージが表示されます。

アップロードされたファイルが許可されている最大サイズを超えています

ローカル マシンの問題:

ローカル マシンのみで、アップロードされたイメージが 2 MB を超えて 8 MB 未満の場合、次のエラー メッセージが表示されます。

警告: mime_content_type(): 92 行目の C:\xampp\htdocs\project\webroot\3rdparty\responsive file manager\filemanager\upload.php の空のファイル名またはパス

行 92 は、一連の if ステートメント内の次の特定の行を参照しています。

if ( ! empty($_FILES) || isset($_POST['url']))
{
    if(isset($_POST['url'])){
        $temp = tempnam('/tmp','RF');
        $handle = fopen($temp, "w");
        fwrite($handle, file_get_contents($_POST['url']));
        fclose($handle);
        $_FILES['file']= array(
            'name' => basename($_POST['url']),
            'tmp_name' => $temp,
            'size' => filesize($temp),
            'type' => explode(".", strtolower($temp))
        );
    }

    $info = pathinfo($_FILES['file']['name']);
    $mime_type = $_FILES['file']['type'];
    if (function_exists('mime_content_type')){
        $mime_type = mime_content_type($_FILES['file']['tmp_name']); //line 92
    }
}

私もこのエラーを受け取ります:

ファイル拡張子は使用できません。(@C:\xampp\htdocs\project\webroot\3rdparty\レスポンシブ ファイル マネージャー\filemanager\upload.php#260)

これは、次の一連の if ステートメントを参照します。

if ( ! empty($_FILES) || isset($_POST['url']))
{
    else // file ext. is not in the allowed list
    {
        response(trans("Error_extension").AddErrorLocation(), 406)->send(); //line 260

        exit();
    }
}

サーバーの問題:

サーバーでは、これら 2 つの問題は次の 1 つのエラーに置き換えられます。

メモリ不足
(@/home/site/public_html/webroot/3rdparty/responsive file manager/filemanager.upload.php#241)

これは、次の一連の if ステートメントを参照します。

if ( ! empty($_FILES) || isset($_POST['url']))
{
    if (in_array(fix_strtolower($extension), $ext))
    {
        if ($is_img)
        {
            $memory_error = FALSE;
            if ( $extension != 'svg' && !create_img($targetFile, $targetFileThumb, 122, 91))
            {
                $memory_error = TRUE;
            }
            // not enough memory
            if ($memory_error)
            {
                unlink($targetFile);
                response(trans("Not enought Memory").AddErrorLocation(), 406)->send(); //line 241
                exit();
            }
        }
    }
}

これまでの試み:

私は以下を見てきました:

  • ローカル マシンでファイル拡張子の問題が発生したため、config.php ファイルで許可されているファイル拡張子を確認しましたが、両方の形式の jpeg が既に存在していました。

'ext_img' => array( 'jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg' ), //Images

一方、include\mime_type_lib.php には、両方の形式の jpeg が既に存在していました。

$mime_types = array(
    'jpeg'    => 'image/jpeg',
    'jpg'     => 'image/jpeg',
)
  • 私のローカル マシンでは、upload_max_filesizeを 128M に増やしました。一方、サーバーでは、cPanel の PHP 設定を使用して同じことを行いました。さらに、config.php ファイルで、上記の変更に合わせて MaxSizeUpload 設定を次のように変更しました。

'MaxSizeUpload' => 128,

  • config.php と upload.php の最新バージョンをチェックして、バージョンが古いかどうかも確認しましたが、そうではありませんでした。
4

1 に答える 1