I.K. 0 Denunciar post Postado Janeiro 22, 2008 Então, procurei mto sobre unlink e depois de algum tempo eu meio que desisti e resolvi pedir ajuda. Minha situação é essa, tenho um form para atualizar uma imagem d uma tabela. Tanto o upload do novo arquivo qto o update na tabela funcionam, a única coisa q eu não consegui fazer foi apagar o arquivo antigo. Alguem pode me indicar o caminho pelo menos de onde estou errando? segue meu code (usando dreamweaver): CODE <?php require_once('../Connections/conexao.php'); function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } //envia novo avatar $avatar_temp2 = $row_avatar['avatar']; copy($avatar,"../upload/dj/".$avatar_name); $avatar = $_POST['avatar']; if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) { $updateSQL = sprintf("UPDATE djs SET avatar = '$avatar_name' WHERE id=%s", //GetSQLValueString($_POST['avatar'], "text"), GetSQLValueString($_POST['id'], "int")); mysql_select_db($database_conexao, $conexao); $Result1 = mysql_query($updateSQL, $conexao) or die(mysql_error()); $updateGoTo = "ok_avatar.php?avatar=$avatar_temp2"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $updateGoTo)); $do = unlink("../upload/dj/$avatar_temp2"); if($do=="1"){ echo "The file was deleted successfully."; } else { echo "There was an error trying to delete the file."; } } $colname_avatar = "-1"; if (isset($_GET['id'])) { $colname_avatar = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']); } mysql_select_db($database_conexao, $conexao); $query_avatar = sprintf("SELECT id, avatar FROM djs WHERE id = %s", $colname_avatar); $avatar = mysql_query($query_avatar, $conexao) or die(mysql_error()); $row_avatar = mysql_fetch_assoc($avatar); $totalRows_avatar = mysql_num_rows($avatar); $avatar_temp2 = $row_avatar['avatar']; $id_temp = $_GET['id']; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> <link href="estilo1.css" rel="stylesheet" type="text/css" /> </head> <body> <form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1"> <table align="center"> <tr valign="baseline"> <td nowrap align="right">Avatar:</td> <td><input name="avatar" type="file" size="32"></td> </tr> <tr valign="baseline"> <td nowrap align="right"> </td> <td><input type="submit" value="Atualiza avatar"></td> </tr> </table> <input type="hidden" name="MM_update" value="form1"> <input type="hidden" name="id" value="<?php echo $row_avatar['id']; ?>"> <input type="hidden" name="id2" value="<?php echo $avatar_temp2; ?>" /> </form> <p><?php echo $avatar_temp2; ?></p> </body> </html> <?php mysql_free_result($avatar); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Luiz Henrique 1 Denunciar post Postado Janeiro 22, 2008 Olá, para deletar o arquivo do diretório é com unlink mesmo. esta linha $do = unlink("../upload/dj/$avatar_temp2"); se ela não estiver sendo chamada em outro lugar para deletar deveria ser assim unlink("../upload/dj/$avatar_temp2"); porém confira se o caminho gravado no banco de dados é realmente este ../upload/dj/$avatar_temp2 e se a página que faz a atualização deve descer um diretório ../ talvez seu problema seja caminho. Compartilhar este post Link para o post Compartilhar em outros sites
berkowitz 2 Denunciar post Postado Janeiro 23, 2008 Tenta assim: if(unlink("../upload/dj/" . $avatar_temp2)) { echo "The file was deleted successfully."; } else { echo "There was an error trying to delete the file."; } ABRAX! Compartilhar este post Link para o post Compartilhar em outros sites