gpt4 book ai didi

PHP : add write permission to file after move_uploaded_file()

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:53 25 4
gpt4 key购买 nike

用 PHP 上传图像后,我想使图像文件可写,以便为其添加水印。以下是我使用的代码:

if(isset($_FILES['file_poster']['tmp_name']) && $_FILES['file_poster']['tmp_name'] != '') {
$random_filename = substr(md5(time()), 0, 9);
$ext = '.jpg';
if(strpos(strtolower($_FILES['file_poster']['name']), '.png') > -1) {
$ext = '.png';
}

move_uploaded_file($_FILES['file_poster']['tmp_name'], 'uploads/' . $random_filename . $ext);
chmod(ABS_PATH . $random_filename, 0666);
$random_filename = 'uploads/' . $random_filename . $ext;

// add watermark codes omitted
}

文件上传后,文件权限变为644。然后我尝试使用 chmod() 将其更改为可写(666),但权限没有改变。

/uploads 文件夹的权限为 777。是否有任何原因导致 chmod() 函数无法更改权限?或者有解决方法吗?

注意:使用 PHP 5。 GD 正常工作。

最佳答案

看起来你需要交换最后两行,例如

$random_filename = 'uploads/' .  $random_filename . $ext;
chmod(ABS_PATH . $random_filename, 0666);

使用诸如 'uploads/' 之类的相对路径时要非常小心。 $随机文件名。 $分机。如果工作文件包含到另一个文件中,则当前目录可能不同。

我会推荐这样的东西

$destFile = __DIR__ . '/uploads/' . $random_filename . $ext;
move_uploaded_file($_FILES['file_poster']['tmp_name'], $destFile);
chmod($destFile, 0666);

神奇的 __DIR__ 常量始终包含您实际所在文件的父目录的绝对路径。

关于PHP : add write permission to file after move_uploaded_file(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15262748/

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