پاک کردن یک فایل از پوشه در php

sara_

Member
سلام
من وقتی یه فایلی رو آپلود میکنم اسمشو تو دیتابیس درج میکنم حالا اگه بخوام این رکورد رو حذف کنم از جدول پاک میشه اما من میخوام همراه با حذف از جدول، فایل از تو پوشه ای که توش آپلود شده هم حذف بشه
اصلا این کار ممکنه؟ اگه آره لطفا توضیح بدید
خیلی ممنون
 

masima

Member
سلام
بله امکانپذیره ! با توابع کار روی فایل ها و پوشه ها می تونید این کار رو انجام بدید :

1) ابتدا باید وارد پوشه بشید
2) فایل ها رو بخونید
3) فایل مورد نظر رو پاک کنید (نام فایل رو حتما میدونید دیگه ! )

PHP:
#نام فایل رو بذارید
$file_name = "1.txt";

#نام پوشه رو بذارید
$dir_name = "upload_folder";

if ( !is_dir($dir_name) )
    {
    echo "<br/>this dir does not exist !";
    die ();
    }
    
$d = opendir ( $dir_name );

while ( $f=readdir($d) ) 
    {
    if ( is_file($del_file=$dir_name."/".$f) and $f==$file_name )
        {
        unlink ( $del_file );
        echo "<br/>file deleted :  $file_name";
        }
    }

این برنامه هیچ باگی نداره ! (فکر همه جاشو کردم ! مگر .. !! ) :wink:
موفق باشید
 
آخرین ویرایش:

MMSHFE

Active Member
بله با دستور rmdir میتونید اینکار رو انجام بدین. البته باید قبلش اون پوشه خالی شده باشه و توش هیچ فایل و پوشه فرعی نباشه و ضمناً Permission هم داشته باشین. میتونید از این تابع بازگشتی استفاده کنید که پوشه های غیر خالی رو هم حذف میکنه:
PHP:
<?php
    function rrmdir($dir) {
        if (is_dir($dir)) {
            $objects = scandir($dir);
            foreach ($objects as $object) {
                if ($object != '.' && $object != '..') {
                    if (filetype($dir.'/'.$object) == 'dir') {
                        rrmdir($dir.'/'.$object);
                    }
                    else {
                        unlink($dir.'/'.$object);
                    }
                }
            }
            reset($objects);
            rmdir($dir);
        }
    }
?>
امیدوارم به دردتون بخوره.
 

arminsong

Member
از همین کدی که این دوست ما mmshfe گذاشته استفاده کن

توی این کد تابع پاک کردن فلدر نوشته شده .
اگه اجرا نمیشه شاید دلیلش اینه که درست تابع رو فراخوانی نکردی.
برای فراخوانی تابع از چه کدی استفاده میکنی؟
 

MMSHFE

Active Member
توی کدتون یک نقطه اضافه بعد از اسم پوشه گذاشتین. اون رو حذف کنید.
 

جدیدترین ارسال ها

بالا