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

JavaScript029

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没有操作本地文件的权限,可以借助.net,php等后端语言才行的,将图片提交之后,返回个下载地址,window.open就自动下载了。

但是图片可以是svg的话

function saveAs(Url,filename){

var blob=new Blob([''], {type:'application/octet-stream'})

var url = webkitURL.createObjectURL(blob)

var a = document.createElementNS(xhtml,'a')

a.href = Url

a.download = filename

var e = document.createEvent('MouseEvents')

e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)

a.dispatchEvent(e)

webkitURL.revokeObjectURL(url)

2. saveAs(data,"new.svg")