我一直在研究一个动态创建&的小PHP脚本。从base64字符串中将图像保存在文件夹tmp
(已存在!)中。这是我的save.php
文件。
// get base-64 string from form
$filteredData = substr($_POST['img_val'], strpos($_POST['img_val'], ",")+1);
// decode string
$unencodedData = base64_decode($filteredData);
// create unique filename
$a = uniqid();
// name, location and file extension
$compfile = '/tmp/' . $a . '.png';
// save image
file_put_contents($compfile, $unencodedData);
// print image
echo '<img src="' . $compfile . '" />';
奇怪的是:由于/tmp/
变量中的$compfile
,它既不会在页面上创建也不会渲染图像。当我删除它时,一切都像魅力一样,图像正在同一个文件夹中创建。
不幸的是,我真的希望在/tmp/
文件夹中创建图像。在$compfile
之前是一个随机生成的文件名,而是名为/tmp/img.png
,我可以保存以创建名为img.png
的图片并将其保存到tmp
。< / p>
我在这里缺少什么?
(谢谢你的时间。)
答案 0 :(得分:2)
因为我认为这是解决方案,所以我将其作为答案发布。
我认为你想要"tmp/" . $a . ".png"
而不是"/tmp/" . $a . ".png"
。始终使用绝对路径是一种很好的做法,因此:__DIR__ . "/tmp/" . $a . ".png"
。这消除了任何困惑。