我正在研究基本的图片上传系统。 到目前为止,即时通讯使用了来自verot的class_upload.php,效果很好。
我已经对目录安全的目录进行了基本身份验证。
但是我想在上传页面上显示最近上传的图像。
我认为使用此代码应该很简单
if ($imageFileType == "jpg") {
echo "<img src=https://USER:PASS@mywebsite.de/uploads/" . $bildname . ".jpg> </img>";
} elseif ($imageFileType == "jpeg"){
echo "<img src=https://USER:PASS@mywebsite.de/uploads/" . $bildname . ".jpeg> </img>";
} elseif ($imageFileType == "png") {
echo "<img src=https://USER:PASS@mywebsite.de/uploads/" . $bildname . ".png> </img>";
} elseif ($imageFileType == "gif") {
echo "<img src=https://USER:PASS@mywebsite.de/uploads/" . $bildname . ".gif> </img>";
}
其中$ bildname显然是新文件的(正确)名称。 但是,当我上传图片时,当无法显示适当的图片时,它只会显示基本的“图片图标”。
直接在网络浏览器中使用链接“ https://USER:PASS@mywebsite.de/ .....”,即可打开图像。
任何人都可以推荐解决方案或其他解决我的问题的方法吗?
答案 0 :(得分:0)
您在做什么并不安全!但是基于有限的信息并尝试您的代码,我发现的唯一问题是您没有在src =''周围回显孩子的引号。
尝试此操作可能会有所帮助,并且使其正常工作的原因是因为它不是回显有效的html,而是将破碎的html序列作为字符串而不是html标签来回显。
如果您可以提供更多信息(它在回显任何数据或其他错误信息),那将非常有用。
尝试更改每一行,使其看起来像这样:
if ($imageFileType == "jpg") {
echo "<img src='https://USER:PASS@mywebsite.de/uploads/" . $bildname . ".jpg'> </img>";}
您输出的数据应如下所示:
<img src='https://USER:PASS@mywebsite.de/uploads/file.gif'> </img>
您应该做的是将该图像保存为blob格式/缓存到redis并从那里调用,或者将其保存到仅服务器可以访问并从中回显图像文件的普通目录中。目录。
答案 1 :(得分:0)
这很容易通过创建一个新的get_images.php文件来完成,它将使用fopen()和fpasssthru()打开图像
然后在标签中,您可以设置src =“ get_image.php”