php,或js如何实现点击图片另存为

JavaScript026

php,或js如何实现点击图片另存为,第1张

JS:

使用JS实现单击连接保存图片2种形式都可以第一种:

<script>

function SaveAs5(imgURL)

{

var oPop = window.open(imgURL,"","width=1, height=1, top=5000,

left=5000")

for(oPop.document.readyState != "complete")

{ if (oPop.document.readyState == "complete")break}

oPop.document.execCommand("SaveAs")oPop.close()

}

</script>

<img src="t_screenshot_17616.jpg" id="DemoImg" border="0"

onclick="SaveAs5(this.src)">

第二种:

<script>function SaveAs5(imgURL)

{

var oPop = window.open(imgURL,"","width=1, height=1, top=5000,

left=5000")

for(oPop.document.readyState != "complete")

{ if (oPop.document.readyState == "complete")break}

oPop.document.execCommand("SaveAs")oPop.close()

}

</script>

<img src="../t_screenshot_17616.jpg" id="DemoImg" border="0">

<a href="#" onclick="SaveAs5(document.getElementByIdx_x('DemoImg').src)">

点击这里下载图片 </a>

PHP:

<a href="test.php?url=uploads/1112/1-11122212201R28.jpg">下载</a>

test.php文件代码:

<?php

$dir=$_GET['url'] //获取图片地址$file = fopen($dir,"r") // 打开文件

Header("Content-type: application/octet-stream")

Header("Accept-Ranges: bytes")

Header("Accept-Length: ".filesize($dir))

Header("Content-Disposition: attachment filename=" . $dir)

echo fread($file,filesize($dir))

fclose($file)

exit

?>

这问这问题不够详细网页的图片大致分以下几种一是直接插入的图片。这种图片可以直接"右键>图片另存为"就能保存了。二是作为网页背景的图片,这种图片要用"右键>背景另存为"来保存。三是js轮换广告里的图片,这种图片不能直接保存。可以先“查看>查看源文件>找到图片地址>复制>粘贴到地址栏>再右键>图片另存为”保存。不过,这种文件需要一定的网页知识才能找得到图片的地址。四是通过xml文件保存图片地址,再通过像flash,js等引用的图片。这种图片也和上面的情况类似。我就不多说了。如果说这样依旧不能解决你的问题,那么我们来偷偷懒。打开你想要图片的页面,按一下键盘上的“Print Screen”键(在F12旁边那块地方的)。打开Photoshop9以上的版本可以直接粘贴。如果不会PhotoShop,没关系。可以“开始>所有程序>附件>画图>编辑>粘贴”保存即可。如果你想一次全部保存网页上的图片,那么“文件>保存HTML”可以帮你实现!优胜网络。

第一步:通过$_FILES获取文件信息。

第二步:指定新文件名称以及路径,并赋值给一个变量。

第三步:通过move_uploaded_file上传文件。

第四步:上传成功后,将数值存入数据库服务器目录即可。

代码如下

1.conn.php

<? 

$host="localhost" //数据库服务器名称 

$user="root" //用户名 

$pwd="1721" //密码 

$conn=mysql_connect($host,$user,$pwd) 

mysql_query("SET 

character_set_connection=gb2312, 

character_set_results=gb2312, 

character_set_client=binary",$conn) 

 

if ($conn==FALSE) 

echo "<center>服务器连接失败!<br>请刷新后重试。</center>" 

return true 

$databasename="database"//数据库名称 

 

do 

$con=mysql_select_db($databasename,$conn) 

}while(!$con) 

 

if ($con==FALSE) 

echo "<center>打开数据库失败!<br>请刷新后重试。</center>" 

return true 

 

?>

2.upload.php

<?php 

if ($_GET['action'] == "save"){ 

include_once('conn.php') 

include_once('uploadclass.php') 

$title=$_POST['title'] 

$pic=$uploadfile 

if($title == "") 

echo"<Script>window.alert('对不起!你输入的信息不完整!')history.back()</Script>" 

$sql="insert into upload(title,pic) values('$title','$pic')" 

$result=mysql_query($sql,$conn) 

//echo"<Script>window.alert('信息添加成功')location.href='upload.php'</Script>" 

?> 

<html> 

<head> 

<title>文件上传实例</title> 

</head> 

<body> 

<form method="post" action="?action=save" enctype="multipart/form-data"> 

<table border=0 cellspacing=0 cellpadding=0 align=center width="100%"> 

<tr> 

<td width=55 height=20 align="center"> </TD> 

<td height="16"> 

 

<table width="48%" height="93" border="0" cellpadding="0" cellspacing="0"> 

<tr> 

<td>标题:</td> 

<td><input name="title" type="text" id="title"></td> 

</tr> 

<tr> 

<td>文件: </td> 

<td><label> 

<input name="file" type="file" value="浏览" > 

<input type="hidden" name="MAX_FILE_SIZE" value="2000000"> 

</label></td> 

</tr> 

<tr> 

<td> </td> 

<td><input type="submit" value="上 传" name="upload"></td> 

</tr> 

</table></td> 

</tr> 

</table> 

</form> 

 

</body> 

</html>

3.uploadclass.php

<?php 

$uploaddir = "upfiles/"//设置文件保存目录 注意包含/ 

$type=array("jpg","gif","bmp","jpeg","png")//设置允许上传文件的类型 

$patch="/upload/"//程序所在路径 

 

//获取文件后缀名函数 

function fileext($filename) 

return substr(strrchr($filename, '.'), 1) 

//生成随机文件名函数 

function random($length) 

$hash = 'CR-' 

$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz' 

$max = strlen($chars) - 1 

mt_srand((double)microtime() * 1000000) 

for($i = 0 $i < $length $i++) 

$hash .= $chars[mt_rand(0, $max)] 

return $hash 

 

$a=strtolower(fileext($_FILES['file']['name'])) 

//判断文件类型 

if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type)) 

$text=implode(",",$type) 

echo "您只能上传以下类型文件: ",$text,"<br>" 

//生成目标文件的文件名 

else{ 

$filename=explode(".",$_FILES['file']['name']) 

do 

$filename[0]=random(10) //设置随机数长度 

$name=implode(".",$filename) 

//$name1=$name.".Mcncc" 

$uploadfile=$uploaddir.$name 

 

while(file_exists($uploadfile)) 

 

if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)) 

if(is_uploaded_file($_FILES['file']['tmp_name'])) 

 

echo "上传失败!" 

else 

{//输出图片预览 

echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>" 

echo "<br><center><a href='upload.htm'>继续上传</a></center>" 

 

?>