PHP无法在服务器中保存Base64字符串文件

时间:2017-07-30 09:07:32

标签: php

我的PHP脚本无法在000webhost服务器中保存图像文件。这是我的代码:

...

$decodedImage = base64_decode($image_encoded);
$mod_image_name = str_replace(' ', '', $image_name);
$path = "images/" . $mod_image_name . ".jpg";       // 'images' folder is inside 'public_html'
$is_written = file_put_contents($path, $decodedImage);

// to verify variables using MySQL
$query = "INSERT INTO `id2-mydb`.`my_table`
(`id`, `image_name`, `image_code`) 
VALUES (NULL, '$image_name', '$image_encoded')";

mysqli_query($conn, $query);

字符串图片$image_encoded来自Android处理的Base64.encodeToString,Android端和数据传输工作正常。当$image_encoded插入MySQL数据库时,我可以将代码复制粘贴到base64decode.org中,然后生成所需的图像。

我的000webhost文件管理器文件夹如下所示:

  • 的public_html
    • php_folder
    • 图像

FTP传输已开启。

我不确定我在此过程中缺少什么,以及为什么它根本没有在路由文件夹中保存图像,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

$path = __DIR__ . "/../images/" . $mod_image_name . ".jpg";   

由于图像是php_folder的兄弟,我认为这个脚本在PHP文件夹中。

您还应该检查返回值是否成功,并确保Web进程具有images的写入权限