file_put_contents 不工作
file_put_contents not working
我尝试使用以下代码通过 file_put_contents(转换为 .jpg 的 base64 字符串)将内容上传到我的 ubuntu 服务器:
file_put_contents($filename, base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data)));
是的,所有参数都是正确的,我仔细检查了它们。我想知道为什么它不起作用:
顺便说一下:我尝试将它上传到一个文件夹,比文件夹高一级,url 可以访问(但即使将它直接放在 Internet 文件夹中,它也不会要么工作)。
我考虑过错误的权限,但即使将权限更改为 777(我知道这非常不安全),它也不起作用。
我在控制台中也没有收到任何错误。
有人知道为什么这不起作用吗?
谢谢。
文件夹权限
关于您要保存的文件夹的权限(/var/www/html
)您可以更改文件夹的组并更改权限,以便该组可以写为:
$ sudo chgrp www-data /var/www/html/
$ sudo chmod 775 /var/www/html
正则表达式
preg_replace('#^data:image/\w+;base64,#i', '', $data)
AFAIK 模式 必须 有开始和结束斜线,我认为你混淆了 /
和 #
,所以它看起来像
/^data:image/\w+;base64,/i
在image之后的那个斜杠在某些版本中会给你一些问题,所以用反斜杠转义它
/^data:image\/\w+;base64,/i
我想这样就可以了:)
我尝试使用以下代码通过 file_put_contents(转换为 .jpg 的 base64 字符串)将内容上传到我的 ubuntu 服务器:
file_put_contents($filename, base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data)));
是的,所有参数都是正确的,我仔细检查了它们。我想知道为什么它不起作用:
顺便说一下:我尝试将它上传到一个文件夹,比文件夹高一级,url 可以访问(但即使将它直接放在 Internet 文件夹中,它也不会要么工作)。
我考虑过错误的权限,但即使将权限更改为 777(我知道这非常不安全),它也不起作用。
我在控制台中也没有收到任何错误。
有人知道为什么这不起作用吗?
谢谢。
文件夹权限
关于您要保存的文件夹的权限(/var/www/html
)您可以更改文件夹的组并更改权限,以便该组可以写为:
$ sudo chgrp www-data /var/www/html/
$ sudo chmod 775 /var/www/html
正则表达式
preg_replace('#^data:image/\w+;base64,#i', '', $data)
AFAIK 模式 必须 有开始和结束斜线,我认为你混淆了 /
和 #
,所以它看起来像
/^data:image/\w+;base64,/i
在image之后的那个斜杠在某些版本中会给你一些问题,所以用反斜杠转义它
/^data:image\/\w+;base64,/i
我想这样就可以了:)