magento 如何上传file/image/video

69 篇文章 0 订阅
首先创建模块所需要的所有文件夹。
在/app/code/local/Company/ModName/Block/Adminhtml/ModName/Edit/Form.php添加‘enctype’ => ‘multipart/form-data’
这样才能够使用$_FILES 获取值。

code如下:

  1. $form = new Varien_Data_Form(array(  
  2. ‘id’ => ‘edit_form’,  
  3. ‘action’ => $this->getUrl(‘*/*/save’, array(‘id’ =>    $this->getRequest()->getParam(‘id’))),  
  4. ‘method’ => ‘post’,  
  5. ‘enctype’ => ‘multipart/form-data’  
  6. )  
  7. );  

在/app/code/local/Company/ModName/Block/Adminhtml/ModName/Edit/Tab/Form.php里,
_prepareForm中,上传文件类型有3种,file,image,imagefile;image类型能预览和删除图片。
code如下:
  1. $fieldset->addField(‘fileinputname’, ‘file/image/imagefile’, array(  
  2. ‘label’     => Mage::helper(‘pictos’)->__(‘File label’),  
  3. ‘required’  => false,  
  4. ‘name’      => ‘fileinputname’,  
  5. ));  

在/app/code/local/Company/ModName/controllers/Adminhtml/ModuleNameController.php 里saveAction,
if ($data = $this→getRequest()→getPost())下面添加如下code:
  1. if(isset($_FILES['fileinputname']['name']) and (file_exists($_FILES['fileinputname']['tmp_name']))) {  
  2. try {  
  3. $uploader = new Varien_File_Uploader(‘fileinputname’);  
  4. $uploader->setAllowedExtensions(array(‘jpg’,'jpeg’,'gif’,'png’)); // or pdf or anything  
  5.   
  6. $uploader->setAllowRenameFiles(false);  
  7.   
  8. // setAllowRenameFiles(true) -> move your file in a folder the magento way  
  9. // setAllowRenameFiles(true) -> move your file directly in the $path folder  
  10. $uploader->setFilesDispersion(false);  
  11.   
  12. $path = Mage::getBaseDir(‘media’) . DS ;  
  13.   
  14. $uploader->save($path$_FILES['fileinputname']['name']);  
  15.   
  16. $data['fileinputname'] = $_FILES['fileinputname']['name'];  
  17. }catch(Exception $e) {  
  18.   
  19. }  
  20. }  

如果你的上传类型是image,请使用如下code来删除图片:
  1. else {  
  2.   
  3. if(isset($data['fileinputname']['delete']) && $data['fileinputname']['delete'] == 1)  
  4. $data['image_main'] = ”;  
  5. else  
  6. unset($data['fileinputname']);  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值