我使用此表单上传服务器中的文件并在数据库sql中创建记录。
如何从服务器删除图像?
我试过用另一个文件eliminaimg.php(transl:deleteimg.php)中的方法“取消链接”,但不行! 帮帮我!!!
<?php
@include 'config.php';
if(isset($_POST['Submit'])){
// faccio un po' di inclusioni...
@require 'function.php';
// Creo una array con i formati accettati
$tipi_consentiti = array("image/gif","image/jpeg","image/png");
// verifico che il formato del file sia tra quelli accettati
if (@in_array($_FILES['imagefile']['type'], $tipi_consentiti)){
// copio il file nella cartella delle immagini
@copy ($_FILES['imagefile']['tmp_name'], $path_img . $_FILES['imagefile']['name']);
// recupero i dati dal form
$titolo = @addslashes($_POST['titolo']);
$categoria = @addslashes($_POST['categoria']);
$nome = @addslashes($_FILES['imagefile']['name']);
$path = $path_img . stripslashes($nome);
$tipo = @addslashes($_FILES['imagefile']['type']);
// creo la miniatura
@makeThumb($path_img,$path,$nome,$tipo);
// aggiorno il database
$query = "INSERT INTO images (Titolo,Categoria,Nome,Tipo) VALUES('$titolo','$categoria','$nome','$tipo')";
$res = @mysql_query($query) or die (mysql_error());
// Stampo a video un po' di informazioni
echo "Nome: ".$_FILES['imagefile']['name']."<br />";
echo "Dimensione: ".$_FILES['imagefile']['size']."<br />";
echo "Tipo: ".$_FILES['imagefile']['type']."<br />";
echo "Copia eseguita con successo.";
}else{
// stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
echo "Impossibile eseguire l'upload.";
}
}
echo "</form>";
echo "<div id='panelright' class='panelright'>";
echo "<button id='buttonallimg'>Tutti</button>";
echo "<button id='buttoncollimg'>Collane</button>";
echo "<button id='buttonanelimg'>Anelli</button>";
echo "<button id='buttonorecimg'>Orecchini</button></div>";
echo "<div id='all' class='viewgallery'>";
echo "<table width='100px' border='1'>";
$query = "SELECT * FROM images";
$res = mysql_query($query) or die (mysql_error());
$column = 1;
while ($dati=@mysql_fetch_array($res)){
if ($column == 1) {
echo "<tr>";
}
$nome = stripslashes($dati['Nome']);
echo "<td><a href='eliminaimg.php?Id=$dati[Id]?confirm=true' class='confirm'> <img src='images/delete.png'></a>";
echo "<a href=\"" . $path_img . $nome . "\"rel=\"gallery[gallery1]\"><img src=\"" . $path_img . "tb_" . $nome . "\" \"></a></td>";
if ($column == 5) {
echo "</tr>";
$column = 1;
} else {
$column++;
}
}
if ($column != 1) {
echo "</tr>";
}
echo "</table></div>";
eliminaimg.php
<?php
function delete(){
@include 'config.php';
$comando = "DELETE from images " .
"where Id = '$_REQUEST[Id]'";
if(!mysql_query($comando))
echo "Modifica fallita <br/>";
chmod($path_img,0777);
$nome = $_REQUEST['imagefile']['name'];
$path = $path_img . $nome;
unlink ($path);
mysql_close($cn);
}
?>
答案 0 :(得分:1)
您需要从数据库中获取文件名,而不是$_REQUEST
。
function delete(){
@include 'config.php';
$comando = "SELECT Nome FROM images WHERE Id = '$_REQUEST[Id]'";
if ($result = mysql_query($comando) and $row = mysql_fetch_assoc($result)) {
$nome = $row['Nome'];
} else {
die("Query failed: " . mysql_error());
}
$comando = "DELETE from images " .
"where Id = '$_REQUEST[Id]'";
if(!mysql_query($comando))
echo "Modifica fallita <br/>";
chmod($path_img,0777);
$path = $path_img . $nome;
unlink ($path);
mysql_close($cn);
}
答案 1 :(得分:0)
可能是您提供了错误的文件路径。试试这个。
function del_directory_record($filename) {
return unlink($_SERVER['DOCUMENT_ROOT'] . "/foldername/$filename");
}
答案 2 :(得分:0)
检查以确保该文件的权限确实是777.另请参阅谁拥有该文件。 PHP可能拥有该文件。您可能还需要chown该文件。