我在admin上创建了图片字段。我遇到了upload_dir的问题,而base_url与我设置的不一样,这里是我的代码:
<bankicon translate="label comment">
<label>Bank Icon</label>
<comment>Allowed file types: jpeg, gif, png.</comment>
<frontend_type>Image</frontend_type>
<backend_model>adminhtml/system_config_backend_image</backend_model>
<upload_dir config="system/filesystem/media" scope_info="1">theme</upload_dir>
<base_url type="media" scope_info="1">theme</base_url>
<sort_order>5</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</bankicon>
当我上传时 图像保存在:media / theme / default 但预览图像坏了我检查图像链接是:media / default ==&gt;缺少主题路径。
我试过了 主题/默认
仍然无法正常工作。
我该如何解决这个问题?我想修复预览图像以获取媒体/主题/默认
请帮助。
答案 0 :(得分:1)
在system.xml中添加以下内容
<bankicon translate="label">
<label>Bank Icon</label>
<frontend_type>image</frontend_type>
<backend_model>mymodule/system_config_backend_image_bankicon</backend_model>
<base_url type="media" scope_info="1">theme/default</base_url>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<comment>Allowed file types: ICO, PNG, GIF, JPEG, APNG, SVG. Not all browsers support all these formats!</comment>
</bankicon>
如果您看到上面的后端模型,我为该名称Bankicon创建了一个新类
class ABC_Mymodule_Model_System_Config_Backend_Image_Bankicon extends Mage_Adminhtml_Model_System_Config_Backend_Image
{
/**
* The tail part of directory path for uploading
*
*/
const UPLOAD_DIR = 'theme/default';
/**
* Token for the root part of directory path for uploading
*
*/
const UPLOAD_ROOT = 'media';
/**
* Return path to directory for upload file
*
* @return string
* @throw Mage_Core_Exception
*/
protected function _getUploadDir()
{
$uploadDir = $this->_appendScopeInfo(self::UPLOAD_DIR);
$uploadRoot = $this->_getUploadRoot(self::UPLOAD_ROOT);
$uploadDir = $uploadRoot . '/' . $uploadDir;
return $uploadDir;
}
/**
* Makes a decision about whether to add info about the scope.
*
* @return boolean
*/
protected function _addWhetherScopeInfo()
{
return true;
}
/**
* Getter for allowed extensions of uploaded files.
*
* @return array
*/
protected function _getAllowedExtensions()
{
return array('ico', 'png', 'gif', 'jpeg', 'apng', 'svg');
}
/**
* Get real media dir path
*
* @param $token
* @return string
*/
protected function _getUploadRoot($token) {
return Mage::getBaseDir($token);
}
}
答案 1 :(得分:0)
嗯,我不太确定,但你可以考虑一下......
<upload_dir config="system/filesystem/media" scope_info="1">default/theme</upload_dir>
<base_url type="media" scope_info="1">default/theme</base_url>
答案 2 :(得分:0)
只需执行以下操作
<largeimage1 translate="label comment">
<label>Large Image 1</label>
<comment>Allowed file types: jpeg, gif, png.</comment>
<frontend_type>image</frontend_type>
<backend_model>adminhtml/system_config_backend_image</backend_model>
<upload_dir config="system/filesystem/media" scope_info="1">theme</upload_dir>
<base_url type="media" scope_info="1">theme</base_url>
<sort_order>37</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</largeimage1>
将创建字段并输入core_config_table。 要显示你可以使用的somw:
echo Mage::getBaseUrl('media') . Mage::getStoreConfig('system_config_name/group/largeimage1');
完成。