• 12-12-2022, 23:37:58
    #1
    Merhaba..
    Ftp ye upload ettiğim resim dosyalarım var...
    Aynı zamanda upload ederken veritabanına ekleniyor..

    Fakat dosyayı sildirmek istediğimde sadece veritabanındaki kaydı sildirmeyi başarabiliyorum...
    ftp de kayıtlı dosyayı aynı anda sildirmem için unlink uyarlamam gerekiyor.. ama başaramadım..
    Silme kodlarım aşağıdaki gibi.. bu dosyama unlink uyarlayabilirmisiniz lütfen..

    <?php 
    if ($_GET) 
    {
    include("vt.php"); 
    if ($baglanti->query("DELETE FROM katalog WHERE id =".(int)$_GET['id'])) 
    {
    echo "<center><div class='alert alert-success'><p>Silindi.</p></div></center>";    
    }}?>
    veritabanında resim dosyaları uzantı kaydı sutun ismi "dosya"
  • 12-12-2022, 23:39:33
    #2
    Orfi.NET.TR
    alemextra adlı üyeden alıntı: mesajı görüntüle
    Merhaba..
    Ftp ye upload ettiğim resim dosyalarım var...
    Aynı zamanda upload ederken veritabanına ekleniyor..

    Fakat dosyayı sildirmek istediğimde sadece veritabanındaki kaydı sildirmeyi başarabiliyorum...
    ftp de kayıtlı dosyayı aynı anda sildirmem için unlink uyarlamam gerekiyor.. ama başaramadım..
    Silme kodlarım aşağıdaki gibi.. bu dosyama unlink uyarlayabilirmisiniz lütfen..

    <?php
    if ($_GET)
    {
    include("vt.php");
    if ($baglanti->query("DELETE FROM katalog WHERE id =".(int)$_GET['id']))
    {
    echo "<center><div class='alert alert-success'><p>Silindi.</p></div></center>";    
    }}?>
    veritabanında resim dosyaları uzantı kaydı sutun ismi "dosya"
    Unlink komutu paylaşımlı hostingler de çalışmıyor diye biliyorum hocam öyleyse işinize yaramayabilir.
  • 12-12-2022, 23:49:01
    #3
    iREXUS adlı üyeden alıntı: mesajı görüntüle
    Unlink komutu paylaşımlı hostingler de çalışmıyor diye biliyorum hocam öyleyse işinize yaramayabilir.
    peki alternatif varmı acaba dosyaları sildirmek için ?
  • 13-12-2022, 01:06:02
    #4
    @alemextra; paylaşımlı hostingde kullansanız unlink çalışıyor olması lazım yoksa wordpress dahil hiçbir yazılım ftpdeki dosyaları silemez. Ama sunucuya göre relative path yapısı bazen tam çalışmayabiliyor. bu yüzden tam path vermelisiniz.

    Yani
    unlink('klasoradi/dosyaadi.jpg');
    (relative path) yerine
    unlink('/home/username/publick_html/klasoradi/dosyaadi.jpg');
    gibi tam path vermelisiniz. Bununda en sağlıklı ve otomatik yolu dirname(__FILE__) kullanmaktadır. Bu kod çalışan php dosyasının yolunu verir.

    Aşağıdaki şekilde sunucu tam pathini otomatik tanımlayıp kullanabilirsiniz.
    unlink(dirname(__FILE__).'/klasoradi/dosyaadi.jpg');
    Eğer çalışan php bir alt klasördeyse yani silmek istediğiniz dosya bi üst pathde bir klasördeyse aşağıdaki şekilde cd komutudnaki gibi üst klasöre çıkış yapabilirsiniz. Kendi path yapınıza göre düzenleyebilirsiniz.
    unlink(dirname(__FILE__).'/../klasoradi/dosyaadi.jpg');
  • 13-12-2022, 01:54:35
    #5
    Bunun için 2 alternatif var, bir kabuğa direktif verebilir veya unlink kullanabilirsiniz.

    /* Kabuk ile silme işlemi için: (Not: çoğu paylaşımlı sunucuda bu işlem kısıtlanmıştır.) */
    shell_exec("rm -rf dosya_yolu\silinecek_dosya_adi");
    /* Unlink silme için: (Unlink kısıt görecek bir komut değildir.) */
    unlink("dosya_yolu\silinecek_dosya_adi");
    
    /*
    Eğer unlink ile aksiyon alamazsanız muhtemelen dosyanın bulunduğu dizini doğru belirtmiyorsunuz veya o dosyayı silmek için yeterli yetkiye sahip değilsiniz.
    */
  • 13-12-2022, 03:13:08
    #6
    alemextra adlı üyeden alıntı: mesajı görüntüle
    Merhaba..
    Ftp ye upload ettiğim resim dosyalarım var...
    Aynı zamanda upload ederken veritabanına ekleniyor..

    Fakat dosyayı sildirmek istediğimde sadece veritabanındaki kaydı sildirmeyi başarabiliyorum...
    ftp de kayıtlı dosyayı aynı anda sildirmem için unlink uyarlamam gerekiyor.. ama başaramadım..
    Silme kodlarım aşağıdaki gibi.. bu dosyama unlink uyarlayabilirmisiniz lütfen..

    <?php 
    if ($_GET) 
    {
    include("vt.php"); 
    if ($baglanti->query("DELETE FROM katalog WHERE id =".(int)$_GET['id'])) 
    {
    echo "<center><div class='alert alert-success'><p>Silindi.</p></div></center>";    
    }}?>
    veritabanında resim dosyaları uzantı kaydı sutun ismi "dosya"
    Aşağıda örnek kodu verdim bunu kodunuza uyarlayarak yapabilirsiniz.
     $query = $db->prepare('SELECT * FROM sliders WHERE slider_id = ?');
            $query->execute([$slider_id]);
            $slider = $query->fetch(PDO::FETCH_ASSOC);
            if($slider){
                $d = $db->prepare('DELETE FROM sliders WHERE slider_id = ?');
                $d->execute([$slider_id]);
                 if($d->rowCount()){
                    $upload_dir =str_replace('\\','/',__DIR__).'/../..'.'/uploads/sliders/';
                    if(file_exists($upload_dir . $slider['slider_img'])) unlink($upload_dir . $slider['slider_img']);
  • 13-12-2022, 23:46:00
    #7
    Hepinize Çok Teşekkür ederim.. dünden beri bakamadım.. inceleyip deneyeceğim.. saolun..
  • 13-12-2022, 23:47:32
    #8
    sheell olana iyi dikkat edin başınıza iş çıkarabilir.
    tam yol + yazma chmod verirseniz siler.