Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-如何在不使用临时文件的情况下将图像存储到SQL数据库中?_Php_Sql_Image - Fatal编程技术网

PHP-如何在不使用临时文件的情况下将图像存储到SQL数据库中?

PHP-如何在不使用临时文件的情况下将图像存储到SQL数据库中?,php,sql,image,Php,Sql,Image,我试图在不使用临时文件的情况下将图像存储到SQL数据库中。我不想使用临时文件,因为它们太多可能会导致问题。我看到了这一点:但是它使用了临时文件,就像这个和。我将图像作为php资源,而不是文件。尝试将图像的base64字符串放入也失败。我正在向一个blob写入。感谢您的关注,如有任何帮助,我们将不胜感激。PHP并不是专门为处理长时间任务或文件上传而构建的 这意味着它依赖Apache函数进行文件上传 因此,您必须按照所有示例所示进行操作:让Apache在临时目录中处理上载,并且仅在将文件放入数据库后

我试图在不使用临时文件的情况下将图像存储到SQL数据库中。我不想使用临时文件,因为它们太多可能会导致问题。我看到了这一点:但是它使用了临时文件,就像这个和。我将图像作为php资源,而不是文件。尝试将图像的base64字符串放入也失败。我正在向一个blob写入。感谢您的关注,如有任何帮助,我们将不胜感激。

PHP并不是专门为处理长时间任务或文件上传而构建的

这意味着它依赖Apache函数进行文件上传

因此,您必须按照所有示例所示进行操作:让Apache在临时目录中处理上载,并且仅在将文件放入数据库后进行。

输出缓冲

ob_start();
imagejpeg($image_resource);
$image = ob_get_clean();

$image现在保存您可以写入mysql数据库中blob字段的图像数据。

我不确定PHP的体系结构是否能够合理地直接接收文件而不使用临时目录。@dystroy是正确的-文件一旦离开用户的计算机,就需要转到某个地方,不是吗?您可以只使用
$\u文件['uploadedfile']['tmp_name']
文件,但这几乎可以不重新保存。我希望该文件可以在sql数据库中,而不是临时文件。您可以在大多数语言中这样做,但PHP不允许这样做,因为它让Apache处理上载。不过,好消息是,请求完成后,Apache会自动删除临时文件。所以你不会像你说的那样,以成千上万的临时文件“造成问题”而告终。好的,我会这样做的,谢谢你的帮助,即使我想做的是不可能的/不正确的。不过,这对大多数语言来说都是一个很好的实践。好消息是Apache擅长处理上传。这是针对输出缓冲的:“当输出缓冲处于活动状态时,不会从脚本发送任何输出(除了标题),而是将输出存储在内部缓冲区中。”另外,在选择答案之前,请试着将其保留24-48小时:)我不是有意选择的。现在修好了,是的
imagejpeg()
将输出到文件或输出流。我给你的代码捕获了这个流。您只在
ob\u start()
ob\u get\u clean()
之间进行缓冲,然后您可以继续正常输出到流
ob_get_clean()
关闭缓冲会话并返回其中存储的内容。我将在返回服务器时尝试此操作。谢谢。