浏览代码

dev 2020-04

Max F 5 年之前
父节点
当前提交
e090da8d23
共有 1 个文件被更改,包括 24 次插入14 次删除
  1. 24 14
      src/Lib/File/FileUpload.php

+ 24 - 14
src/Lib/File/FileUpload.php

@@ -104,26 +104,36 @@ class FileUpload
 	}
 
 
-	public function setUploadDir($dir, $create_if_missing=false)
+	public function setUploadDir($dir, $create_if_missing=false, $check_writable=true)
 	{
-		if (is_dir($dir) && is_writable($dir)) {
-			// dossier existe et writable
-
-		} else if (is_dir($dir)) {
-			// dossier existe mais pas writeable
-			return false;
+		if (is_dir($dir)) {
+			// dossier existe
+			if ($check_writable) {
+				// check if writable
+				if (! is_writable($dir)) {
+					// not writable
+					return false;
+				}
+			}
 
-		} else if (! $create_if_missing) {
+		} else {
 			// dossier n'existe pas
-			return false;
+			if (! $create_if_missing) {
+				// dossier n'existe pas
+				return false;
 
-		} else {
-			// dossier n'existe pas et on va le creer
-			if (@mkdir($dir)) {
-				// ok
+			} else if (is_writable(dirname($dir))) {
+				// check if parent is writable
+				// dossier n'existe pas et on va le creer
+				if (@mkdir($dir)) {
+					// ok
+
+				} else {
+					// impossible de créer le dossier
+					return false;
+				}
 
 			} else {
-				// impossible de créer le dossier
 				return false;
 			}
 		}