‘壹’ 如何向数据库中插入和删除图片
看看下面这行代码:
___________________
<a href="good_info.jsp?id=<%= rs.getString("good_id")%>">
<img src="<%= rs.getString("good_image")%>">
</a>
___________________
首先需要说明的是在该行之前已经打开数据库,并且生成记录集rs,
<img src="<%= rs.getString("good_image")%>">的功能就是从记录集的"good_image"字段(实际就是图片存储的路径,VARCHAR类型)获取字符串输出在客户端,所以就得到了
<img src="imgpath">图片路径须是相对路径.
___________________
把图片数据直接存储在数据库的情形在大型系统也是有的,不过我并不清楚,无法介绍.
‘贰’ PHP怎么删除数据库里的图片路径同时,删除文件夹下对应的图片
php+mysql删除图片在数据库记录的同时删除图片文件举例说明:
<Ahref="?act='mypicdel&id=<?=$row['id']?>"style="color:#FF0000;"onClick="returnconfirm('确定要删除吗')">删除</A>
if($act=='mypicdel')
{
$id=!empty($_GET['id'])?intval($_GET['id']):'';
//$filename为你的图片地址,是从数据库里读出的
$sql="SELECT*FROMwkcx_userWHEREid=$id";//查询表,取得图片的完整地址
$res=$db->query($sql);
$row=$db->getarray($res);
$filename=$row['avatar'];//给图片地址赋一个变量,大图
$filesmallname=$row['small_img'];//缩略图
if(file_exists($filename)&&file_exists($filesmallname))
{//检查图片文件是否存在
unlink($filename);
unlink($filesmallname);
}
else
{
goBakMsg("文件不存在或路径有误!");//js弹出窗口,我的封装了!可修改为echo"<script>alert('有误');window.go(-1)</script>"
exit;
}
$sql="UPDATEwkcx_userSETavatar='',small_img=''WHEREid='$id'";//我这个是头像,所以修改为空,如果是图片,直接删除就可以了
$db->query($sql);
urlMsg('删除成功','my_photo.php');//同上,我封装了,就是一个提示+跳转!
$sql="DELETEFROMwkcx_user_picWHEREid='$id'";//图片的时候,直接删除图片记录!
$db->query($sql);
urlMsg('删除成功','my_photo.php');
}
备注:一定要注意,先删除图片文件,在删除数据库记录!
‘叁’ SQL数据库中的图片怎么删除,
用update语句
update a set a.pictureimg=null from pictuelist a where a.pictueid=?
‘肆’ 在PHP中删除数据库MYSql里的图片路径字段,如何实现一并删除文件夹下的对应图片
?php
//在删除文件夹中文件时候如果删除整个文件夹必须是在文件夹中没有文件的情况下才可以删除此文件夹所以首先要检查文件夹中是否有文件,如果有文件先循环除文件个数及名称先删除然后才能删除此文件夹,要是只删除一个图片或一个文本文件那么就只用unlink()这个函数就可以解决了以下是说明希望能帮到你
//opendir('imag/a')返回所有在文件夹中的文件
//readdir($handle)返回文件名称得到文件名就可以删除了
$sql="select
*
from
proct
where
id=1";
$r=mysql_query($sql);
$r['psmall'];//得到图片路径
mysql_query("delete
from
proct
where
id=1");//删除商品
//如果要单独删除这个图片直接用unlink($r['psmall']);
//如果要把这件商品下关联的商品图片也删除用下面代码
$imgurl="upload";//或者是
如下
//$imgurl="upload/商品文件夹";//删除商品文件夹下所有商品图片
/*if
($handle
=
opendir($imgurl))
{
while
(false
!==
($file
=
readdir($handle)))
{
if
($file
!=
"."
&&
$file
!=
"..")
{
echo
"$file
";
unlink($imgurl."/$file");
}
}
closedir($handle);
}*/
?
‘伍’ mysql数据库里面删除图片
看看你视图的创建语句
是不是一个连接查询建立的,还有这个视图是不是只读的
如果是连接查询创建的视图的话,你这么操作的话删除的可能不止是一个表里的数据,数据库为了保证数据的完整性,不会允许你这么做。如果是只读的话,当然也就是只有读权限。
不过看报错,你这应该是第一种情况,所以,你只能从这个构建这个视图的表里逐步删除数据,才能把你要删除视图的数据删除,这么说懂吗?
‘陆’ 批量删除mysql数据库里没有记录的图片
<?
$path=getcwd()."/temp";//存放图片目录
$host="localhost";//主机名
$dbuser="root";//登录数据库用户名
$password="156";//密码
$db="db";//数据库名称
$table="table";//存放图片表的名称
/*从数据中查询所有已经被用的图片名称,存储一个数组中假如为$pic
*/
$query="select pic * from ".$table;
$link=mysql_query($host,$dbuser,$password);
mysql_select_db($db,$link);
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
$pic=$pic.$row[pic];
}
$listArray=scandir($path);
foreach($listArray as $item)
{
$isExist=false;
foreach($pic as $datapic)
{
if($item==$datapic){$isExist=true;break;}
}
if($isExist==true){unlink($path."/".$item);echo"删除:".$item." ";}
}
?>
‘柒’ 如何删除数据库没用到的图片
我想来想去,你问的问题可能是这样的:
你的网站中许多文章是从别的网站采集过来的
然后有些图片死链了,你想把这些死链的图片URL从数据库中删掉或批量替换掉
是不是?
DO WHILE NOT RS.EOF
一:把数据库的一行拉出来,找到图片所在的正文字段
二:把字段中的图片地址拉出来.JPG GIF
每个图片地址做一次下载.判断下载的文件的大小
如正常则留下,不正常则删掉或替换成新的地址
rs.movenext
loop
中间的下载代码可以做个过程这样会省事点
当然这只是演示,真的要来,因为操作过时的问题.还要加个分段.比方说每完成100条记录,让服务器休息一下:)要不然程序会死的
回答补充:
我空间中有些图片,没有在网页上使用。要删除之
这样更简单,用dreamweaver自带的站点管理器
[站点]==》检查站点范围内的链接==》链接管理器==》
下拉菜单选:孤立文件
然后等结果出来后,所有你的网站中孤立的没有用的文件都列出来了。选中后缀后为JPG和GIF的删掉!
当然如果数据库里有本地图片地址要先做个小程序把里面的地址导出来成一个正常的HTM文件。
可能说得不是很详细,但我觉得你应该能看得懂的。
这个过程就好比是优化大师和兔子里的清除垃圾文件一样 ~_~
‘捌’ asp怎样清除数据库ACCESS中没有记录的图片
该代码已调试通过,要注意你必须有upload路径的写入权限
<%
'连接数据库,读取图片路径,数据库名:notes.mdb,表名:table1,改成你自己的
Dim conn,connstr,rs,sql
Set conn=server.createobject("ADODB.Connection")
connstr="provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("notes.mdb")
conn.Open connstr
set rs=server.CreateObject("adodb.recordset")
sql="select Pic from table1"
rs.open sql,conn,1,1
'读取/upfile文件夹下的所有文件名
Dim objFSO,objFolder,objFile,FF
FF = Server.MapPath("upfile/")
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(ff) Then
Set objFolder = objFSO.GetFolder(ff)
'遍历upfile/下的所有文件夹
For Each subFolder in objFolder.SubFolders
'遍历所有文件
For Each objFile in subFolder.Files
'去除部分路径
strFile=replace(right(objFile,len(objFile)-instr(objFile,"\upfile\")-7),"\","/")
Response.Write(strFile)
rs.filter="Pic='"&strFile&"'"
if rs.eof then
'文件在数据库中没有找到,直接删除。
'如果需要先显示确认后再删除,在这里把需要删除的文件加入一个数组,后再做操作。
filename=objFile.name
objFile.Delete
Response.Write(filename&"已删除<br />")
end if
Next
Next
Else
Response.Write "文件夹"&ff&"不存在,无法读取相关信息!"
End If
Set objFolder = Nothing
Set objFSO = Nothing
rs.Close
Set rs = nothing
%>
‘玖’ 如何删除数据库记录时候把文件夹中的图片也删掉
按照数据库中的路径
直接使用文件对象(FSO)删除就可以了
‘拾’ asp:如何删除数据库的数据同时并删除图片
可使用FSO对象删除文件.
根据你图片的proctid,获取该图片的路径,赋值给Path.
<%
DelteAFile(path)
Sub DeleteAFile(path)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile(path)
set fso=nothing
End Sub
%>
======================
呵呵,终于搞定,分数吖分数吖........