PHP:如何将文件保存在不存在的目录中?

PHP:如何将文件保存在不存在的目录中?,php,Php,如何将文件保存在不存在的目录中 换句话说,它必须自动创建目录/子目录(如果不存在),然后将文件保存到其中 谢谢。首先。每个人都给出了答案,但忘记打开递归标志。必须将mkdir的第三个参数指定为true,才能创建目录树(): 您可以跳过is\u dir检查,每次都尝试mkdir。如果目录已经存在,mkdir就会失败。理论上,您必须检查mkdir是否成功: mkdir( $dir, 0777, true ); if( !is_writable( $dir ) ) { die( "$dir

如何将文件保存在不存在的目录中

换句话说,它必须自动创建目录/子目录(如果不存在),然后将文件保存到其中


谢谢。

首先。

每个人都给出了答案,但忘记打开递归标志。必须将mkdir的第三个参数指定为true,才能创建目录树():


您可以跳过is\u dir检查,每次都尝试mkdir。如果目录已经存在,mkdir就会失败。理论上,您必须检查mkdir是否成功:

mkdir( $dir, 0777, true );

if( !is_writable( $dir ) ) {
    die( "$dir is not writable" );
}

好的,所以没有办法自动完成,如果你不存在的话,你必须经常做手动检查并创建它。对,尽管你可能总是考虑做MKDIR,如果目录已经存在,就让它失败。@ Juhana:这是一个有趣的方法。“这样做有什么坏处吗?”程序员我把它作为一个新的答案加了进去。可能的缺点是,您不知道mkdir是否因无法创建目录或目录是否已存在而失败。好的,因此无法自动执行此操作,您必须始终执行手动检查,并在目录不存在时创建它?在将文件保存到该位置之前,你检查一个尖目录是否存在。Juhana上面的解决方案是什么“正确”,尽管你可能总是考虑做MKDIR,如果目录已经存在,就让它失败。建议这样做吗?只有在文件夹不存在时才会执行mk dir。。if(!is_dir(“foldername”))我理解,但是您不能安全地使用if(!is_dir(…)检查,而只使用mkdir,如果该目录已经存在,它将自动检查并失败吗?单线解决方案会有问题吗?好的,所以没有办法自动执行,您必须始终进行手动检查,并在不存在时创建它?好的,所以没有办法自动执行,您必须始终执行手动检查,如果目录不存在,则创建它?此处执行的检查是检查目录是否已成功创建(返回true)。如果您的Web服务器没有执行此任务的权限,它将返回false。这只是一个错误检查。当然,在创建目录之前,请听取其他人的建议,检查is_dir是否存在。你应该意识到电脑是愚蠢的,你必须在每个广告中告诉他该怎么做(如果可能的话),否则他会哭的。
if(!is_dir($dir)){
mkdir($dir);
}
<?php
// Desired folder structure
$structure = './depth1/depth2/depth3/';

// To create the nested structure, the $recursive parameter 
// to mkdir() must be specified.

if (!mkdir($structure, 0, true)) {
    die('Failed to create folders...');
}

// ...
?>
mkdir( $dir, 0777, true );

if( !is_writable( $dir ) ) {
    die( "$dir is not writable" );
}