php
画像の zip ファイルをフォルダーにアップロードするスクリプトがあります。このスクリプトは、zip ファイル内のファイルのみを再帰的に検索し、すべてのファイルをサーバー上の 1 つのディレクトリに配置します。
問題は、特定のファイルが二重にアップロードされることです。これはスクリプトのせいではなく、アップル コンピューターのばかげたことと劣等感のせいで、Mac が画像の zip ファイルを作成すると、画像のフォルダーが作成され、まったく同じ画像のみが含まれる別のフォルダーが作成されます。 _" をファイル名の前に付けます。Apple コンピューターがすぐに姿を消すという幸運に恵まれないことを見て、私は自分のphp
スクリプトに、これらの劣悪な Mac の忌まわしきものを検索し、それらをディレクトリから削除する単純な関数を含めようとしました。ただし、php
使用するときにこれらのファイルをプルすることさえありません"ftp_nlist"
。
php
だから私の質問は、これらのばかげたものを削除できるようにするにはどうすればよいですか?
$contents = ftp_nlist($conn_id, '.');
foreach($contents as $key => $value){
echo $key." => ".$value."<BR>";
if(substr($value, 1, 1) == ".") {
if(ftp_delete($conn_id, $value)) {
echo "Deleting $value<BR>";
}
}
echo "<BR>";
}
exit();
編集:
ステファンの提案のおかげで、私はこれを思いつくことができました
if($zip->open($_FILES['theFile']['tmp_name']) === TRUE){
for($i = 0; $i < $zip->numFiles; $i++) {
$filename = $zip->getNameIndex($i);
$fileinfo = pathinfo($filename);
copy("zip://".$_FILES['theFile']['tmp_name']."#".$filename, $ezPresenter['currentFolder'].'/'.$fileinfo['basename']);
}
$zip->close();
}else{
exit("Could not upload/extract file");
}
$contents = ftp_rawlist($conn_id, '-a');
foreach($contents as $key => $value){
$value = explode(" ", $value);
$value = $value[count($value)-1];
echo $key." => ".$value."<BR>";
if(strpos($value, ".") === false) {
if(ftp_delete($conn_id, $value)) {
echo "Deleting $value<BR>";
}
}
if(substr($value, 0, 2) == "._") {
if(ftp_delete($conn_id, $value)) {
echo "Deleting $value<BR>";
}
}elseif(substr($value, 0, 1) == "." && $value != "." && $value != "..") {
if(ftp_delete($conn_id, $value)) {
echo "Deleting $value<BR>";
}
}
}