如何在自定义模块表单中预览上传的图像
-
13-12-2019 - |
题
我正在学习Magento,并试图制作一个模块来管理餐厅的厨师。我创建了一个上传按钮来上传图像,它可以工作(图像保存在目录中,文件名保存在数据库中)。
但不知道如何在图片已经上传时(如上传目录图片时)按钮旁边有一个小的图像预览。目前,当我点击"编辑"来编辑厨师信息时,如果我已经上传了图像,图像字段看起来是一样的。
这是我的领域:
$fieldset->addField('image_url', 'image', array(
'label' => Mage::helper('tressympa_cheflist')->__('Profile Picture'),
'required' => false,
'name' => 'image_url',
));
有什么建议吗?非常感谢!
解决方案
使用完整路径保存图像名称。
media/{yourfolder}/imagename.jpg
.
使用yourfolder/imagename.jpg
它将以编辑形式自动显示。
或
您可以呈现该字段并显示图像
$fieldset->addField('image_url', 'image', array(
'label' => Mage::helper('tressympa_cheflist')->__('Profile Picture'),
'required' => false,
'renderer' => 'modulename/adminhtml_modulename_renderer_image',
'name' => 'image_url',
));
.
添加您的文件块/ adminhtml / modulename / renderer / image.php
<?php
class NameSpace_ModuleName_Block_Adminhtml_ModuleName_Renderer_Image extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract{
public function render(Varien_Object $row) {
$html = '<img id="' . $this->getColumn()->getId() . '" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).$row->getData($this->getColumn()->getIndex()) . '"';
$html .= '/>';
return $html;
}
}
?>
. 其他提示
如果以默认方式保存图像,则可以实现此目的 media
文件夹而不是 media/{yourfolder}/imagename.jpg
像更改图像路径
media/{yourfolder}/imagename.jpg => media/imagename.jpg