PHP file_put_contents()

时间:2015-03-20 01:49:59

标签: php image file-upload

如何才能提供实际图像?

file_put_contents($url,$image);

大小和名称正确发布到目录,但图像显示为已损坏。我需要编码或解码吗?

为了通知您,$ image来自以下内容:

    ob_start();
    echo imagejpeg($image,null,30);
    $image = ob_get_clean();
    ob_end_clean();
    $image = addslashes($image);

$ image已成功发布到mysql,但我一直在努力将其放入目录。

1 个答案:

答案 0 :(得分:1)

imagejpeg()将图像输出到输出缓冲区。您正在使用echo imagepeg()输出图像,然后立即回显函数调用的true/false返回值。

此外,您通过执行以下操作来破坏您的图片:$image = addslashes($image);,我想这是为了您的数据库的利益。

您需要的是

ob_start();
imagejpeg($image,null,30);
$image = ob_get_clean();
file_put_contents($url,$image);

我不明白为什么要将图像存储在文件系统中的数据库中。文件系统应该足够好:存储路径&数据库中的文件名。

如果您觉得必须将图片添加到数据库中,请不要使用addslashes(),但要使用您正在使用的API提供的功能将其转义,您要执行查询的点。您最好使用预准备语句,以便不必转义数据。