请问有人请告诉我这段代码我做错了什么?
if($id != '') {
if(is_dir("../public_html".$tem_pasta['path']."/pics/".$id)) {
echo "pasta já existia";
$destination_file = "../public_html".$tem_pasta['path']."/pics/".$id."/".$myFileName;
} else {
//pasta nao existia
if (ftp_mkdir($conn_id, "../public_html".$tem_pasta['path']."/pics/".$id)) {
$destination_file = "../public_html".$tem_pasta['path']."/pics/".$id."/".$myFileName;
//echo "pasta criada<br>";
} else {
echo "erro, não criou a pasta<br>";
}
}
} else {
$destination_file = "../public_html".$tem_pasta['path']."/pics/".$myFileName;
}
Run Code Online (Sandbox Code Playgroud)
它会检查我的pics目录中是否有一个文件夹($ id),如果没有,脚本会创建一个新文件夹.效果很好,但如果我尝试将另一个文件上传到之前创建的文件夹,它确实会返回错误,说它没有创建文件夹...
谢谢
我不认为你可以在FTP资源上使用is_dir,你应该做的是用ftp_size检查目录/文件的大小是否为-1.
因为我认为现在发生的是:您正在尝试再次创建相同的文件夹,这就是发生错误的原因.
编辑:或者检查ftp_chdir!
<?php
function ftp_directory_exists($ftp, $dir)
{
// Get the current working directory
$origin = ftp_pwd($ftp);
// Attempt to change directory, suppress errors
if (@ftp_chdir($ftp, $dir))
{
// If the directory exists, set back to origin
ftp_chdir($ftp, $origin);
return true;
}
// Directory does not exist
return false;
}
?>
Run Code Online (Sandbox Code Playgroud)
应该管用!
is_dir仅适用于本地文件系统.如果要检查ftp目录是否已存在,请尝试以下操作:
function ftp_is_dir($ftp, $dir)
{
$pushd = ftp_pwd($ftp);
if ($pushd !== false && @ftp_chdir($ftp, $dir))
{
ftp_chdir($ftp, $pushd);
return true;
}
return false;
}
if($id != '') {
if(ftp_is_dir($conn_id, "../public_html".$tem_pasta['path']."/pics/".$id)) {
// and so on...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11813 次 |
| 最近记录: |