php - 无法使用 mkdir 创建目录

标签 php

我有下面的 upload_files 脚本可以在我的开发服务器(XAMPP Apache 2.4.17 和 PHP 5.6.23)上运行,但是我不能让它在我的生产服务器上运行(Synology diskstation,apache 2.2.31 php 5.6。 30)

它无法在数据目录中创建目录 SY2017_18(数据目录确实存在)。数据目录具有以下权限: drwxrwxr-x 1 管理员用户 234 Aug29 09:59 数据

我检查了 php.ini 并且:

file_uploads = On
upload_tmp_dir = "var/services/tmp"

非常感谢任何帮助。

// upload_files script
if(isset($_FILES['my_file'])){    
    $errors= array();
    $file_name = $_FILES['my_file']['name'];
    $file_size =$_FILES['my_file']['size'];
    $file_tmp =$_FILES['my_file']['tmp_name'];
    $file_type=$_FILES['my_file']['type'];
    $file_ext=strtolower(end(explode('.',$_FILES['my_file']['name'])));
    $extensions= array("jpg","png");

if(in_array($file_ext,$extensions)=== false){
    $errors[]="extension not allowed, please choose a Spreadsheet file.";
}

if($file_size > 2097152){
    $errors[]='File size must be less than 2 MB';
}

if(empty($errors)==true){
    $folder = $_SERVER['DOCUMENT_ROOT']."/pdo/data/SY".$thisschoolyear;
    if(!is_dir($folder)){
        if (mkdir($folder, 0755)) {
        } else echo "NO luck creating the folder $folder<br>";
    }
}

最佳答案

确保您的代码在其中创建 $folder 的目录的所有者设置为 Apache

最好的方法是在脚本顶部通过 ini_setting 检查您是否获得任何许可等通知(仅当错误关闭时)。

ini_set("display_errors", 1);
error_reporting(E_ALL & ~E_NOTICE);

这也会显示通知。

祝你好运!

关于php - 无法使用 mkdir 创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45931070/

相关文章:

php - 如何使用 PHP 生成随机的 DARK 十六进制颜色代码?

javascript - 循环播放视频并在每次播放后刷新

php - 将 json 数据解码为数组并在 PHP(Laravel) 中访问数组

php - 现场事件的自动 PayPal 付款

php - 制作一个可以 self 更新并在企业级别保护它的 PHP 应用程序

Php ftp_connect 在 AWS 服务器上不起作用

php - 使用 MAX 查询

PHP - 常量/全局变量/配置

php - Symfony 缺少 bootstrap.php.cache

php - 将数组对象转换为字符串并分隔值