我需要将图像从PHP URL保存到我的PC.假设我有一个页面,http://example.com/image.php拿着一个"花"图像,没有别的.如何使用新名称(使用PHP)从URL保存此图像?
我正在进行一个生成艺术项目,我希望允许用户从算法中保存生成的图像.一般的想法是:
但是,我坚持第二步.在谷歌的一些帮助下,我找到了这篇博文,这似乎正是我想要的:
这导致了JavaScript代码:
function saveImage() {
var canvasData = canvas.toDataURL("image/png");
var ajax = new XMLHttpRequest();
ajax.open("POST", "testSave.php", false);
ajax.onreadystatechange = function() {
console.log(ajax.responseText);
}
ajax.setRequestHeader("Content-Type", "application/upload");
ajax.send("imgData=" + canvasData);
}
Run Code Online (Sandbox Code Playgroud)
和相应的PHP(testSave.php):
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) {
$imageData = $GLOBALS['HTTP_RAW_POST_DATA'];
$filteredData = substr($imageData, strpos($imageData, ",") + 1);
$unencodedData = base64_decode($filteredData);
$fp = fopen('/path/to/file.png', 'wb');
fwrite($fp, $unencodedData);
fclose($fp);
}
?>
Run Code Online (Sandbox Code Playgroud)
但这似乎根本没有做任何事情.
更多谷歌搜索出现了这篇基于上一个教程的博客文章.差别不大,但也许值得一试:
$data = $_POST['imgData'];
$file = "/path/to/file.png";
$uri = substr($data,strpos($data, ",") + 1);
file_put_contents($file, …Run Code Online (Sandbox Code Playgroud) 我正在尝试将HTML5画布转换为图像.这是我到目前为止所得到的:
var tmp_canvas = document.getElementById('canvas');
var dataURL = tmp_canvas.toDataURL("image/png");
$('#thumbnail_list').append($('<img/>', { src : dataURL }).addClass('image'));
Run Code Online (Sandbox Code Playgroud)
但问题是我得到这个代码:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAEsCAYAAADtt+XCAAAgAElEQVR4nNS6Z1xVaZbvv/c+CVOZc6mYEMlJMZRizgljGRARs6AgOSMGQATBSM5ZyTkoOQkSzJWrp3t6etLt6Z7pmf/c++L7f3EOiBZW2dM9dz73xfdzztl7n3Oe/Txrrd9a69mCTC4gkwvIZAKSTECUBARRQBA+jii+46f.......class="image">
Run Code Online (Sandbox Code Playgroud)
我想要一个用户可以下载的普通图像路径!
有帮助吗?
我一直在尝试使用PHP Headers强制下载图像,但是存在多个问题.
所以,相反,我如何使用,.htaccess以便当我链接到像这样的图像时:
<a href="wallpapers/image.jpg">Download</a>
Run Code Online (Sandbox Code Playgroud)
...而不是在浏览器中打开该文件,该文件实际上已下载并保存到用户的计算机.
我已经在我的项目中使用.htaccess来重写URL,如果这会影响任何东西.
javascript ×2
php ×2
.htaccess ×1
ajax ×1
canvas ×1
download ×1
html5 ×1
html5-canvas ×1
image ×1