如何回显公用文件夹之外的图像

时间:2014-12-10 13:45:00

标签: php path directory server

在这个项目中,我将管理员提交的文件上传到公共文件夹之外的文件夹。

/web/ (the public folder)
/upload/ (uploading image to this which is at the same level as the public folder)

现在虽然我能够使用绝对网址(/www/userid/upload/)进行上传,但我无法使用相对网址或绝对网址回显同一图像。

我尝试了<img src="/www/userid/upload/photo.jpg" />以及<img src="../upload/photo.jpg" />,但没有一个正常运作。任何提示?

3 个答案:

答案 0 :(得分:4)

direct路径无法正常工作,因为您无法从根文件夹之外获取内容..您可以采取其他方式,从服务器目录路径中读取php脚本中的图像文件并提供服务文件使用header

脚本file.php

<?php
  $mime_type = mime_content_type("/image_path/{$_GET['file']}");
  header('Content-Type: '.$mime_type);

  readfile("/image_path/{$_GET['file']}");
?>


<img src="file.php?file=photo.jpg" />

答案 1 :(得分:2)

您通常不访问网络根目录以外的目录。

快速解决方案是在apache配置中添加alias,如

alias /upload/ /www/userid/upload/

virtualhosts

并使用

/upload/photo.jpg

答案 2 :(得分:0)

我会跳过php和文件夹选项,并直接在服务器中使用符号链接。我假设你使用某种形式的linux作为你的服务器。因此,如果它不是安全问题,只需将上传文件夹设为您拥有图像的公用文件夹的副本。但是,这将使该文件夹中的所有内容都显示在上传文件夹中,但这不应该是很多问题,因为替代方案是改变上传文件夹的权限并以这种方式编写整个脚本。