gpt4 book ai didi

PHP fwrite() 不工作

转载 作者:行者123 更新时间:2023-12-05 08:59:30 24 4
gpt4 key购买 nike

我在 php 中编写一个函数,在客户端我有一个 Canvas 图像,我使用 toDataUrl() 和一个文件名将图像保存在服务器上。这是代码:

<?php
$imageData=$GLOBALS['HTTP_RAW_POST_DATA'];
$data = json_decode($imageData, true);

$file = $data["file"];
$image = $data["data"];

$filteredData=substr($image, strpos($image, ",")+1);
$unencodedData=base64_decode($filteredData);

$fp = fopen( 'image/' . $file , 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
?>

关键是这段代码有效。对于我在其上使用的三分之二的页面,它工作正常。问题是当我第三次复制并粘贴它以再次实现它时,出于某种原因,文件是在服务器上创建的,除了没有数据被写入文件。我不认为这是客户端的问题,因为我在 javascript 中写入调试警报消息,在 PHP 中写入调试回显,两者都能够很好地打印出数据。我制作了这个简短的调试文件:

<?php
$fp = fopen('data.txt', 'wb');
if(is_writable('data.txt')){
echo "file is writable<br>";
}
if(fwrite($fp, 'test') == FALSE){
echo "failed to write data<br>";
}
fclose($fp);
?>

输出是

file is writable
failed to write data

在写入 0777 之前,我已经尝试使用 chmod 并设置所有内容、文件夹、文本文件,但我仍然得到相同的结果;文件已创建,但没有数据写入其中。有什么我遗漏的或任何其他可能有帮助的方法吗?我在谷歌上没有找到任何东西,并且仍然对为什么相同的代码在没有明显原因突然停止之前两次完全按预期工作感到困惑。

提前致谢。

最佳答案

我知道这是一篇旧帖子,但我遇到了一个非常相似的问题并找到了解决方案(至少对我而言)!我的服务器上的磁盘空间用完了,所以它可以创建一个 0 字节的文件,但不会写入它。在我清理了一些空间(删除了一个 13gb 的 error.log 文件)之后,一切都按预期重新开始工作。

如果 fopen 工作但 fwrite 神秘地不工作,请检查您的磁盘空间。 'df -h' 是检查 Linux 服务器磁盘空间的命令。

关于PHP fwrite() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14374258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com