从两个目录中删除图像

时间:2015-01-13 08:20:35

标签: php image directory delete-file

我有一个脚本可以在数据库和两个目录中加载图像:uploads / original和预览目录:uploads / thumbs

我需要创建一个小面板来删除插入的图像,我已经创建了要从数据库中删除的代码,但我无法从两个目录中删除它们。

我知道我需要使用unlink,但我不是专家,我不知道在哪里放置代码等。我向你寻求帮助。

到目前为止,这是我删除的文件:

    <?php 
$con = mysql_connect("localhost","*******","******"); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("**********************", $con); 

if($_POST) 
{ 
    $ids = isset($_POST['id']) ? $_POST['id'] : array(); 
    elimina_record($ids); 
} 
elseif(isset($_GET['id'])) 
{ 
    elimina_record(array($_GET['id'])); 
} 
else 
    mostra_lista(); 

function mostra_lista() 
{ 
    // mostro un eventuale messaggio 
    if(isset($_GET['msg'])) 
        echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />'; 

    // preparo la query 
    $query = "SELECT id,name,filename FROM image"; 

    // invio la query 
    $result = mysql_query($query); 

    // controllo l'esito 
    if (!$result) { 
        die("Errore nella query $query: " . mysql_error()); 
    } 

    echo ' 
    <form name="form1" method="post" action=""> 
    <table border="1"> 
        <tr> 
            <th>&nbsp;</th> 
            <th>ID</th> 
            <th>&nbsp;</th> 
        </tr>'; 

    while ($row = mysql_fetch_assoc($result)) 
    { 
        $name = htmlentities($row['name']); 
        $id = htmlentities($row['id']); 
        $filename = htmlentities($row['filename']); 



        // preparo il link per la modifica dei dati del record 
        $link = $_SERVER['PHP_SELF'].'?id=' . $row['id']; 

        echo "<tr> 
                <td><input name=\"id[]\" type=\"checkbox\" value=\"$row[id]\" /></td> 
                <td>$id</td> 
                <td><a href=\"$link\">delete</a></td> 
            </tr>"; 
    } 

    echo '</table> 
        <br /> 
        <input type="submit" name="Submit" value="Elimina record selezionati" /> 
        </form>'; 

    // libero la memoria di PHP occupata dai record estratti con la SELECT 
    mysql_free_result($result); 

    // chiudo la connessione a MySQL 
    mysql_close(); 
} 

function elimina_record($ids) 
{ 
    // verifico che almeno un id sia stato selezionato 
    if(count($ids) < 1) 
    { 
        $messaggio = urlencode("Nessun record selezionato!"); 
        header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio); 
        exit; 
    } 

    // per precauzione converto gli ID in interi 
    $ids = array_map('intval',$ids); 

    // creo una lista di ID per la query 
    $ids = implode(',',$ids); 

    // preparo la query 
    $query = "DELETE FROM image WHERE id IN ($ids)"; 

    // invio la query 
    $result = mysql_query($query); 

    // controllo l'esito 
    if (!$result) { 
        die("Errore nella query $query: " . mysql_error()); 
    } 

    // conto il numero di record cancellati 
    $num_record = mysql_affected_rows(); 

    // chiudo la connessione a MySQL 
    mysql_close(); 

    $messaggio = urlencode("Numero record cancellati: $num_record"); 
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio); 
} 
?>

虽然它可能很有用,甚至可以将文件粘贴到upload.php文件中:

    session_start();
$_SESSION['id']="1";
$id=$_SESSION['id'];
include 'config.php';  //assume you have connected to database already.
$folder = 'uploads/';
$name = date('YmdHis');
$filename = md5($_SERVER['REMOTE_ADDR'].rand()).'.jpg';
$original = $folder.$filename;

// The JPEG snapshot is sent as raw input:
$input = file_get_contents('php://input');

if(md5($input) == '7d4df9cc423720b7f1f3d672b89362be'){
    // Blank image. We don't need this one.
    exit;
}

$result = file_put_contents($original, $input);
if (!$result) {
    echo '{
        "error"        : 1,
        "message"    : "Failed save the image. Make sure you chmod the uploads folder and its subfolders to 777."
    }';
    exit;
}

$info = getimagesize($original);
if($info['mime'] != 'image/jpeg'){
    unlink($original);
    exit;
}

// Moving the temporary file to the originals folder:
rename($original,'uploads/original/'.$filename);
$original = 'uploads/original/'.$filename;

// Using the GD library to resize 
// the image into a thumbnail:

$origImage    = imagecreatefromjpeg($original);
$newImage    = imagecreatetruecolor(154,110);
imagecopyresampled($newImage,$origImage,0,0,0,0,154,110,520,370); 

imagejpeg($newImage,'uploads/thumbs/'.$filename);

echo '{"status":1,"message":"Success!","filename":"'.$filename.'"}';


    $sql="INSERT INTO image VALUES ('','$name','$filename')";
    $result=mysqli_query($con,$sql);
    $value=mysqli_insert_id($con);
    $_SESSION["myvalue"]=$value;  

2 个答案:

答案 0 :(得分:0)

$cart_1="/uploads/original/"; 
    $cart_2="/uploads/thumbs/"; 
    foreach($files as $file){ 
        $f_1=$cart_1.$file; 
        $f_2=$cart_2.$file; 
        unlink($f_1); 
        unlink($f_2); 
    }

答案 1 :(得分:0)

检查出来:

$dir1 = '/upload/original/';
$dir2 = '/upload/thumbs/';
$image = 'abc.jpg';
if(file_exists($dir1.$image))
    unlink($dir1.$image);
if(file_exists($dir2.$image))
    unlink($dir2.$image);