1

ユーザーが複数の画像をアップロードできるシステムを作りました。これらの画像は、データベースの MEDIUMBLOB タイプのフィールドに格納されます。この機能を作成するコードの下。

//Configurações para a geração de um arquivo binário temporário
        $diretorio = "temp/";
        $nomeArquivo = "sipi_binario.img";

        if ($_FILES["arquivo"]["name"][0] != null) {
            for ($i = 0; $i < count($_FILES["arquivo"]["tmp_name"]); $i++) {

                $pFoto = $_FILES["arquivo"]["tmp_name"][$i];

                move_uploaded_file($pFoto, $diretorio . $nomeArquivo);
                $pont = fopen($diretorio . $nomeArquivo, "rb");

                $dados[4][$i] = base64_encode(fread($pont, filesize($diretorio . $nomeArquivo)));
                $dados[5][$i] = $_FILES["arquivo"]["type"][$i];

                fclose($pont);
            }
        }

ユーザーがいくつかの iamgen を選択すると、システムは正しく動作しますが、ユーザーがたとえば 20 個の画像を選択すると、それらの一部が破損し始めます。下記参照:

ここに画像の説明を入力 誰もこれがどのように確実に知っていますか?

4

1 に答える 1

0

複数のサムを作成しないと、同じプロセッサ上で並列処理が失われるため、次の行を次のように変更する必要があります。

move_uploaded_file($pFoto, $diretorio . $nomeArquivo . $i);
$pont = fopen($diretorio . $nomeArquivo . $i, "rb");
$dados[4][$i] = base64_encode(fread($pont, filesize($diretorio . $nomeArquivo . $i)));
于 2015-07-06T18:09:53.923 に答える