web-dev-qa-db-ja.com

move_uploaded_file()を使用しているときにPHP)に宛先(フォルダ)を作成する方法は?

PHP=でファイルをアップロードしたいのですが、move_uplload_filesを使用して、目的のフォルダにコピーします。これで問題なく動作します。

_if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'))
die("success");
else
die("error");
_

でもこれを試してみると

_$Rand =  chr(Rand(97, 122)). chr(Rand(97, 122)). chr(Rand(97, 122));
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$Rand))
die("success");
else
die("error");
_

エラーが発生し、move_uploaded_files できませんフォルダーのように見えます。これどうやってするの ?

基本的には、存在しない場合にパスを作成するfile_put_contents()のような方法を探しています。

18
user529649

mkdir() を使用します。

a/b/cを渡すなどして複数のフォルダを作成する必要がある場合は、3番目の引数をTRUEに設定します。

すでにそこにあるかどうかをテストし、そうでない場合は追加できます。

$path = 'abc';

if ( ! is_dir($path)) {
    mkdir($path);
}
31
alex

このようなものを使用してください:

_$folder = "uploads"; 
if(!is_dir($folder)) mkdir($folder);
_

is_dir() フォルダが存在するかどうかを確認します。

6
Vikash

これは私にとってはうまくいきます:

$path = "upload/";
$name = $_FILES["file"]["name"];
// Remove dangerous characters from filename.
$name = str_replace('..', '', $name);
$name = str_replace('/', '', $name);
$name = str_replace('\\', '', $name);

if (($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
&& ($_FILES["file"]["size"] < 2000000)) {
      if ($_FILES["file"]["error"] > 0) {
        echo "Error " . $_FILES["file"]["error"] . "<br>";
      } else {
        if(file_exists($path.$name)){
            echo "$path$name already exists. ";
        } else {                
            @mkdir($path, 0666, true);  // Create non-executable upload folder(s) if needed.
            move_uploaded_file($_FILES["file"]["tmp_name"], $path.$name);
            echo "Stored in: $path$name";
        }
    }
} else {
    echo "Invalid file. Allowed are JPG smaller than 2 MB.";
}
1
Cees Timmerman

最初にmkdir()を使用してディレクトリを作成します

  $Rand =  chr(Rand(97, 122)). chr(Rand(97, 122)). chr(Rand(97, 122));
    mkdir('./uploades/'.$Rand);
    if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$Rand))
    die("success");
    else
    die("error");
1
Shakti Singh