アップロードされた画像をカスタムモジュール形式でプレビューする方法

magento.stackexchange https://magento.stackexchange.com//questions/86142

質問

マゼントを学んで、レストランでシェフを管理するモジュールを作ろうとしています。画像をアップロードするためのアップロードボタンを作成し、それが機能します(画像はディレクトリ内で保存、データベースに保存されているファイル名)。

しかし、画像がアップロードされたときに、ボタンの横にある画像の小さなプレビューがある方法がわからない(カタログ画像をアップロードするときに)。現時点では、「編集」をクリックしてシェフ情報を編集すると、画像フィールドはすでにアップロードした場合、またはNOTの場合は同じように見えます。

これは私のフィールドです:

 $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
.

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top