2016-05-20 10 views
0

Ich verwende folgendes Skript, um Bilder hochzuladen. Hier ist der Link: http://filer.grandesign.md/Wie kann ich hochgeladene Bilder mit jQuery/Ajax/PHP löschen?

Verwenden dieses Skript Es ermöglicht die Vorschau nach dem Hochladen des Bildes. Wie unten Bild:

enter image description here

Sie können sehen, dass, es ermöglicht auch das Bild zu löschen - Siehe roten Eimer Symbol

Was ich jetzt tue:

Als ich Bild hochladen Ich habe das hochgeladene Bild umbenannt und in der Datenbank gespeichert.

Der Code ist unten:

require_once('class.upload.php'); 
if(!isset($_FILES['files'])) { 
    die(); 
} 

$files = array(); 
foreach ($_FILES['files'] as $k => $l) { 
    foreach ($l as $i => $v) { 
     if (!array_key_exists($i, $files)) 
      $files[$i] = array(); 
     $files[$i][$k] = $v; 
    } 
} 

foreach ($files as $file) { 

    $handle = new upload($file); 

    if ($handle->uploaded) { 

     $handle->file_new_name_body  = 'mpic_list_'.uniqid('', true); 
     $menu_list_image = $handle->file_new_name_body; 

     $handle->image_resize   = true; 
     $handle->image_ratio_crop  = true; 
     $handle->image_x    = 360; 
     $handle->image_y    = 240; 

     $handle->process('images/menu_images/');  

     $handle->file_new_name_body  = 'mpic_small_'.uniqid('', true); 
     $menu_small_image = $handle->file_new_name_body; 

     $handle->image_resize   = true; 
     $handle->image_ratio_crop  = true; 
     $handle->image_x    = 100; 
     $handle->image_y    = 65; 

     $handle->process('images/menu_images/'); 

     $handle->file_new_name_body  = 'mpic_large_'.uniqid('', true); 
     $menu_large_image = $handle->file_new_name_body; 

     $handle->image_resize   = true; 
     $handle->image_ratio_crop  = true; 
     $handle->image_x    = 700; 
     $handle->image_y    = 470; 

     $handle->process('images/menu_images/'); 

     if ($handle->processed) {   
      $all_images = $menu_list_image . $menu_small_image . $menu_large_image; 
      $u_id = (int) $_SESSION['logged_user_id']; 

      if(!isset($_SESSION['last_id'])) { 
       // insert upload image section data... 
       $insert_menu_details = mysqli_query($conn, "INSERT INTO products (p_id) VALUES ('')"); 
       $last_id = mysqli_insert_id($conn); 
       $insert_upload_image = mysqli_query($conn, "INSERT INTO product_images VALUES ('', '$menu_large_image', '$menu_list_image', '$menu_small_image', '$last_id', '$u_id')");  
       $_SESSION['last_id'] = $last_id; 
      } else { 
       // update upload image section data 
       $session_last_id = $_SESSION['last_id']; 
       $update_upload_image = mysqli_query($conn, "INSERT INTO product_images VALUES ('', '$menu_large_image', '$menu_list_image', '$menu_small_image', '$session_last_id', '$u_id')");  
      } 

      $handle->clean(); 
     } else { 
      //echo 'error : ' . $handle->error; 
      echo 'Error'; 
     } 
    } 
} 

Was ich brauche:

Jetzt möchte ich mein hochgeladenes Bild löschen. Aber hier ist ein Thema, das ist: standardmäßig wird dieses Skript des hochgeladene Bild mit folgenden PHP-Zeile zu löschen:

<?php 
if(isset($_POST['file'])){ 
    $file = 'images/menu_images/' . $_POST['file']; 
    if(file_exists($file)){ 
     unlink($file); 
    } 
} 
?> 

Aber Ich kann es nicht gelöscht werden, da, wenn ich das Bild hochladen, um den Ordner (images/menu_images/) I Umbenennung in etwas wie das: abedkd12415775554.jpg

Meine Frage ist Wie kann ich mein hochgeladenes Bild mit diesem Skript löschen?

Antwort

0

Sie müssen die neuen Bilder Namen zurückzugeben, die Sie vom Server Scripting generieren wie-

In der Schleife Sie ausgeführt werden Dateinamen in database-

Einfügen
$array = array("oldName" => "newName"); 
echo json_encode($array); 

Sie auch numerische Index verwenden können wenn Sie eine Logik in Ihrem JavaScript-Ende verwenden, um ein Array zu erstellen.

In Javascript auf löschen Option können Sie den Wert mithilfe des Image-Namen abrufen und löschen können.

0

Kontrolle dieses

$res=mysqli_query("SELECT file FROM tbl_uploads WHERE id=".$_GET['remove_id']); 
$row=mysqli_fetch_array($res); 
mysqli_query("DELETE FROM tbl_uploads WHERE id=".$_GET['remove_id']); 
unlink("uploads/".$row['file']); 

Ersetzen Sie Ihre Tabelle und id Name

Verwandte Themen