如何取消链接php
中的图像我上传图像到服务器并将路径保存在数据库中。现在我想删除记录,并在图像与记录 我的代码是如何取消链接php
$id=$_GET['id']; $select=mysql_query("select image from table_name where question_id='$id'"); $image=mysql_fetch_array($select); @unlink($image['image']); $result=mysql_query("delete from table_name where question_id='$id'");
当我回声$图像[“形象”];这会给我
http://www.example.com/folder/images/image_name.jpeg记录被成功删除,但图像保留在服务器上。
您必须使用服务器上的路径删除图像,而不是网址。
unlink('/var/www/test/folder/images/image_name.jpeg'); // correct
你应该删除@
unlink()
之前,在这种情况下,你会看到错误消息说“找不到文件”或类似的东西。
,但图像路径来自数据库,就像我在我的问题中提到的那样。所以我应该如何知道哪些图像被删除。 – 2011-04-19 09:01:11
从PHP 5.0.0开始,unlink()也可以与一些URL包装一起使用。 http://www.php.net/manual/en/wrappers.php – 2011-04-19 09:01:36
也许你应该保存图像的路径。另一种方式(我不会这样做)是'str_replace('http://www.example.com','/var/www/test',$url);'在取消路径之前取消路径 - 但你应该尽量避免这种情况 - 只需保存文件路径即可。 – oezi 2011-04-19 09:03:52
您应该使用相对路径从服务器中删除文件并取消链接。如果保存数据库中的绝对路径,首先必须从删除图像的文件夹中看到。所以,如果你从“delete.php”,也就是在www.example.com/folder/delete.php删除图像比你应该做这样的事情:
$db_path = "http://www.example.com/folder/images/upArrow.png";
$len = strlen("http://www.example.com/folder/");
$new_path = substr($db_path, $len, strlen($db_path)-$len); echo " -> ".$new_path;
if(isset($_POST['Submit'])){
$return = unlink($new_path);
if($return){echo "Succes";}else{echo "Fail";}
}
,只要你选择删除链接的代码。 像这样:<a href=addproduct.php?action=delete&pid=$get_info[pid]>Delete</a>
那么你必须检查条件使用cuurent选择项目。
if(isset($_GET['action']) && $_GET['action']=='delete' && isset($_GET['pid']))
{
$query1=("select * from tablename where id='".$_GET['id']."'");
$result1=mysql_query($query1);
while($data=mysql_fetch_array($result1))
{
$delete=$data['file'];
unlink("../upload/$delete");
}
$query=("delete from tablename where id='".$_GET['id']."'");
$result=mysql_query($query) or die("not inserted". mysql_error());
if($result==TRUE)
{
$_SESSION['msg']="product successfully deleted";
header("Location:addproduct.php");
exit;
}
else
{
$_SESSION['msg']="error in deleting product";
header("Location:addproduct.php");
exit;
}
}
简单,如果你使用folder/images/image_name.jpeg
代替整个网址中断开链接它会正常工作 例如
取消链接(“http://www.example.com/folder/images/image_name.jpeg”);
应
unlink("folder/images/image_name.jpeg");
不错:)一个作品! – habamedia 2016-01-25 21:33:51
//http://www.example.com/folder/images/image_name.jpeg
define("BASE_URL", DIRECTORY_SEPARATOR . "folder" . DIRECTORY_SEPARATOR);
define("ROOT_PATH", $_SERVER['DOCUMENT_ROOT'] . BASE_URL);
$folder_upload = "images/";
$image_delete = ROOT_PATH . $folder_upload . pathinfo($image['image'], PATHINFO_BASENAME);
if (!empty($image['image'])) {
/* Delete */
if (unlink($image_delete)) {
echo "<b>{$image_delete}</b> has been deleted";
} else {
echo "<b>{$image_delete}</b> error deleting ";
}
} else {
echo "File image not exist";
}
// http://localhost/folder/images/image_name.jpeg
更换拆下取消链接调用'@'看到任何错误是否拿出 – 2011-04-19 08:56:51
'警告:取消链接():HTTP不允许断开链接在/ var /第11行的www/test/delete_table.php' – 2011-04-19 08:59:08
是否正确?如果它不是'jpg',或者您可以尝试使用路径而不是网址 – 2011-04-19 08:59:49