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()
のような方法を探しています。
mkdir()
を使用します。
a/b/c
を渡すなどして複数のフォルダを作成する必要がある場合は、3番目の引数をTRUE
に設定します。
すでにそこにあるかどうかをテストし、そうでない場合は追加できます。
$path = 'abc';
if ( ! is_dir($path)) {
mkdir($path);
}
このようなものを使用してください:
_$folder = "uploads";
if(!is_dir($folder)) mkdir($folder);
_
is_dir()
フォルダが存在するかどうかを確認します。
これは私にとってはうまくいきます:
$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.";
}
最初に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");