我一直很难完成一项非常正常的任务。我将图像上传并保存到我的网络服务器,并将文件的路径保存在 MySQL 数据库中(这一切正常)。不起作用的是从服务器获取图像文件并通过 ajax 将其显示在页面上。
最初我试图从数据库中检索路径,并src
使用图像路径更新标签的属性。这是可行的,但是这样所有的图像都在服务器上的一个文件夹中,人们都可以访问它们。不是很好。我只能让这些用户可以访问属于某些用户的图片。
为了限制对这些照片的访问,我在该文件夹上添加了一个 Apache 指令,它成功地限制了访问。然后问题变成了我无法通过将src
属性设置为该路径来在浏览器中显示图像。请参阅我的帖子:https ://serverfault.com/questions/425974/apache-deny-access-to-images-folder-but-still-able-to-display-via-img-on-site
最后我了解到我必须使用 PHP 直接从服务器读取图像数据并将这些数据发送到浏览器。我使用了file_get_contents()函数,该函数用于将服务器上的图像文件 (PNG) 转换为字符串。我在 ajax 调用中将此字符串返回给浏览器。我无法得到的是: 如何使用 JavaScript 将此字符串转换回图像?
请参阅此代码:
$.ajax({
url: get_image.php,
success: function(image_string){
//how to load this image string from file_get_contents to the browser??
}
});