0

当社の PHP スクリプトは、Linux ベースの Apache サーバーでホストされています。1 つのテキストエリア送信ボタンを含むフォームがあります。このテキストエリアには、 284312文字の非常に長い base64 文字列が含まれています。

このフォームを送信すると、時間がかかりすぎます。久しぶりに処理中です。小さなbase64文字列では機能しており、画像は正常に投稿されますが、大きなサイズの画像base64文字列では機能しません。

サーバー側で次のコードを使用して、この base64 イメージを取得しています。

$ifp = fopen( "images/myimage.png", "wb" );
$status = fwrite( $ifp, base64_decode( str_replace(' ', '+', $_REQUEST['image'] ) ) );
fclose( $ifp );

これに対する解決策はありますか?PHP または Apache の構成を変更する必要がありますか?

4

1 に答える 1

1

$_REQUESTなしで試してみてください。最初に私の完全なスクリプトです。これが私にとってはうまくいくコードです。うまくいかない場合は、PHP/webserver/machine(os、cpu ..)に関する完全な情報を提供してください:しかし、私は思うそれはあなたのテキストエリアからコードに文字を渡すことに関するものです。私はあなたがそれをどのように行うかよくわかりませんでしたが、以下のスクリプトをテストすると答えが得られます:)

<?php
    $time_start = microtime(true); 

    $imagedata = file_get_contents('Cat2.jpg'); //5616998 bytes
    $base64 = base64_encode($imagedata);

    //echo strlen($base64); //7489332 characters

    $ifp = fopen('myimage.png', 'wb');
    $status = fwrite($ifp, base64_decode(str_replace(' ', '+', $base64)));
    fclose($ifp);

    echo 'Total execution time in seconds: ' . (microtime(true) - $time_start); //0.098897218704224 seconds
?>

以前のコメントに投稿された詳細。

于 2013-09-11T09:26:58.797 に答える