【发布时间】:2018-02-06 10:27:45
【问题描述】:
我有下面的 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>";
}
}
}
【问题讨论】:
-
你好,看看这个帖子*.com/questions/927564/…,它可以帮助你理解mkdir返回false的原因。
-
作为权限问题的快速检查,把目录改成777看看能不能用。
-
很长,我已经阅读了很多关于这个问题的帖子,并且由于语法错误,mkdir 总是失败。如上所述,我的代码在 XAMPP 上运行良好,所以我总是很确定问题出在权限上。不幸的是,我是 Linux 的新手,所以这对我来说是全新的领域。
标签: php