当前位置: 首页 > 知识库问答 >
问题:

ZF2-基于完整路径在视图中显示图像

毋举
2023-03-14

我已经设法在ZF2上传图像文件,并在数据库中存储完整的路径。路径看起来像这样:

/home/ubuntu/NetBeansProjects/project/data/upload/event_5554a7b600c0f。jpg

项目结构是Zend骨架应用程序

项目数据上传事件_5554a7b600c0f。jpg模块公共

在我看来,我呼吁:

     <img src="<?php echo $event->getImage(); ?>" class="img-thumbnail" alt="<?php echo $event->getTitle(); ?>" width="304" height="236"> </td>

$event-

如果我在project public img upload event_5554a7b600c0f中存储相同的图像。jpg

和存储 /img/upload/event_5554a7b600c0f.jpg路径它的工作。

我有两个问题:1.什么是好的策略,将上传的图像文件存储在Publi/img文件夹或顶级数据/上传文件夹中?2.如果将文件存储在数据/上传中是更好的策略,我如何显示图像?

非常感谢。

共有2个答案

从烈
2023-03-14

如果图片是公开的,并且你很高兴网上的任何人都可以看到它,那么最容易的方法就是把它保存在公共文件夹中。

当您可能考虑将其放入数据目录中时,如果您需要确保用户名/密码或ACL等的图像安全,那么为了使其工作,您可以创建一个控制器来访问图像并使用类似的方法将其流在响应中;

$filesize = filesize($directory.$fileName);
$response = new \Zend\Http\Response\Stream();
$response->setStream(fopen($directory.$fileName, 'r'));
$response->setStatusCode(200);
$headers = new \Zend\Http\Headers();
$headers->addHeaderLine('Content-Type', $mimeType)
    ->addHeaderLine('Content-Disposition', 'attachment; filename="' . $fileName . '"')
    ->addHeaderLine('Content-Length', $filesize);

$response->setHeaders($headers);

return $response;

我想这会给你的服务器增加额外的负载。

谷梁楷
2023-03-14

我已经创建了一个模块HtImgModule,用于在Zend Framework 2中进行图像处理。

下面是一个简单输出图像的示例:

namespace Applicaton\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use HtImgModule\View\Model\ImageModel;

class MyController extends AbstractActionController
{
    public function displayImageAction()
    {
        return new ImageModel('path/to/image');
    }
}

所以,将图像存储在公用文件夹中并不是绝对必要的。但是,还有表现惩罚。幸运的是,HtImgModule足够灵活,可以将映像缓存到web根目录,以便直接从文件系统提供缓存映像。看看HtImgModule的文档。

 类似资料:
  • 我已成功将图像上载到我的上载目录。这就是结构 公共网页- 现在,我在DB记录中存储的路径是: ./上传/上传图片。gif 但当我这么做的时候: 它仍然没有显示任何东西。图像路径内容为/上传/上传图片。gif。 我正在尝试将图像加载到位于以下位置的视图中: 公共网页- 我会非常感激你的帮助。

  • 在标记的src中传递的图像路径有一些问题。 在我的数据库中,我有用户图像的Linux绝对路径。我得到这个值并放入“src”属性中。 我有一个路径,例如: null 我需要知道的是我要做什么? 我必须改变Jetty的配置吗?我必须用Java运行一些代码吗? 通过谷歌搜索,我变得更加困惑。我想要个解释。 谢谢你,巴卢斯!豪豪乌豪阿

  • 问题内容: 我正在尝试在正在制作的购物车中显示图像,但没有显示出来。我必须导入每个图像吗?我知道我的路径很好,因为它以前可以工作。我认为我的product.js文件中可能有问题,但我无法弄清楚。 这是我的Product.js 数据来自此product.js 我正在提取所有数据,但图像没有显示 问题答案: 假设您使用的是webpack,则需要导入图像以使其像 现在您的图像数据是动态的,直接指定导入路

  • 我想发送完整的轨道来查看和显示像http://localhost:8080/fileaName.然后我推这个链接,并在我的磁盘上保存文件。 现在我看不到页面上的链接

  • 它将我带到图库以选择图像,但未显示在应用程序中,当单击上传按钮时,它只是一个空白图像视图 < li >我的Java代码 < li>XML代码 运行时显示此错误 java.lang.IllegalArgumentException:uri不能为空 以下两处给出错误的行显示了uri错误

  • 提前致谢 下面是我的plugin.xml