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 回答