`
天梯梦
  • 浏览: 13741400 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

Magento : 调用文件上传 upload file frontend

 
阅读更多
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

 

$pathname should be the server path to the file and not a url

Try

$path = Mage::getBaseDir('media') . DS;

 

You should try using Varien_File_Uploader

include_once Mage::getBaseDir() . '/lib/Varien/File/Uploader.php';

/* Starting upload */
$uploader = new Varien_File_Uploader('filename');

// Any extention would work
$uploader->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png'));
$uploader->setAllowRenameFiles(false);

// Set the file upload mode 
// false -> get the file directly in the specified folder
// true -> get the file in the product like folders 
//  (file.jpg will go in something like /media/f/i/file.jpg)
$uploader->setFilesDispersion(false);

// We set media as the upload dir
$path = Mage::getBaseDir('media') . DS;
$uploader->save($path, $_FILES['filename']['name']);

 

参考:http://magento.stackexchange.com/a/40744

 

如果想要裁图的话,可以参考下面代码:

include_once Mage::getBaseDir() . '/lib/Varien/File/Uploader.php';

$file                 = new Varien_Io_File();			
$imageDir       = Mage::getBaseDir('media') . DS .  'mbimages';
$thumbimageyDir = Mage::getBaseDir('media').DS.'mbimages'.DS.'thumbs';

if(!is_dir($imageDir)) $imageDirResult            = $file->mkdir($imageDir, 0777);         
if(!is_dir($thumbimageyDir)) $thumbimageDirResult = $file->mkdir($thumbimageyDir, 0777);     

//echo '<pre>'; print_r($_FILES); echo '==>'.$filename; echo '</pre>'; die;

if(isset($_FILES[$filename]['name']) && $_FILES[$filename]['name'] != '') 
{
	//echo '==>'.$_FILES[$filename]['name'];
	
	try {	
		/* Starting upload */	
		$uploader = new Varien_File_Uploader($filename);
	
		// Any extention would work
		$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
		$uploader->setAllowRenameFiles(true);
	
		// Set the file upload mode 
		// false -> get the file directly in the specified folder
		// true -> get the file in the product like folders 
		//	(file.jpg will go in something like /media/f/i/file.jpg)
		$uploader->setFilesDispersion(true);
			
		// We set media as the upload dir
		//$path = Mage::getBaseDir('media') . DS ;
		$path = $imageDir . DS ;
		$result = $uploader->save($path, $_FILES[$filename]['name']);
		$file = str_replace(DS, '/', $result['file']);
		###############################################################################
		// actual path of image
		$imageUrl = Mage::getBaseDir('media').DS."mbimages".$file;
		 
		// path of the resized image to be saved
		// here, the resized image is saved in media/resized folder
		$imageResized = Mage::getBaseDir('media').DS."mbimages".DS."thumbs".DS."mbimages".$file;					
		 
		// resize image only if the image file exists and the resized image file doesn't exist
		// the image is resized proportionally with the width/height 135px
		if (!file_exists($imageResized)&&file_exists($imageUrl)) :
			$imageObj = new Varien_Image($imageUrl);
			$imageObj->constrainOnly(TRUE);
			$imageObj->keepAspectRatio(FALSE);
			$imageObj->keepFrame(FALSE);
			$imageObj->quality(100);
			$imageObj->resize(80, 50);
			$imageObj->save($imageResized);
		endif;				
	
		$data[$filename] = 'mbimages'.$file;
	} catch (Exception $e) {
		$data[$filename] = 'mbimages'.'/'.$_FILES[$filename]['name'];
	}
}

 

更多图片处理方法请参考:magento图片处理 Customize Magento’s Image Resize Functionality

 

原文/转自:Magento : 调用文件上传 upload file frontend

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Magento: 后台添加预览按钮 View product in frontend from Magento admin

    这篇博客“Magento:后台添加预览按钮 View product in frontend from Magento admin”主要探讨了如何通过自定义开发来实现这一功能,让管理员能够快速检查商品在网站前台的显示状态。 在Magento中,通常管理员需要...

    Magento: Beginner's Guide ([Packt]出品 Magento新手指南)

    ### Magento新手指南知识点详解 #### 一、Magento简介与特性 **Magento**是一款功能强大的开源电子商务平台,由Varien公司(后被Adobe收购)于2008年首次发布。它以其灵活性、可扩展性和丰富的功能集而闻名,是...

    Magento:适用于Dropday的Magento扩展

    上载带有扩展名的Dropday/OrderAutomation目录。 打开终端并导航到Magento根目录。 运行以下命令以启用Dropday扩展: php bin/magento module:enable Dropday_OrderAutomation 运行Magento安装程序升级: ...

    Magento No Flash Upload插件

    Magento No Flash Upload插件是专为Magento电子商务平台设计的一个组件,旨在解决原生系统依赖Flash进行文件上传的问题。由于Adobe Flash在安全性、性能和移动设备兼容性方面的限制,越来越多的浏览器开始逐步淘汰对...

    magento2-integration

    Magento:registered:2数据集成借助Datatric Connect扩展程序,可以轻松地将Magento:registered:2商店与Datatrics平台连接起来。安装在开始安装过程之前,我们建议您对webshop文件以及数据库进行备份。 有两种安装...

    The Definitive Guide to Magento (Apress出品 Magento权威指南)

    ### Magento权威指南 #### 书籍概述 《Magento权威指南》是由Adam McCombs与Robert Banh共同编著的一本深入探讨Magento电商平台的技术手册。该书由Apress出版社于2009年出版发行,旨在为读者提供一个全面、系统的...

    magento:Magento片段

    Magento的布局系统是通过XML文件来定义的,这些文件位于`app/design`目录下。布局更新(Layout Updates)描述了页面上各个元素的位置,以及如何从模块的Block类渲染出对应的模板文件。例如,`&lt;block&gt;`标签可以用来...

    docker-magento:Mark Shust的Magento Docker配置

    docker-magento:Mark Shust的Magento Docker配置

    magento:Gimmie Magento 模块

    要更新版本,改版本号和运行gulp创建Magento的包文件。 执照 麻省理工学院许可证 (MIT) 版权所有 (c) 2014 Gimmieworld pte ltd。 特此授予任何人免费获得本软件副本和相关文档文件(“软件”)的许可,不受限制...

    magento:megento电子商务网站

    magento:megento电子商务网站

    ansible-magento:ansible置备的magento商店

    ansible-magento要求: -流浪汉-可以指示: 克隆此仓库无所事事在浏览器中导航到magento.dev。MySQL 数据库:magento 用户名:magento 密码:password123 这是基于的工作而进行的一些更改,以简化启动和运行过程...

    dv-campus-2021-magento:DV。校园2021 Magento

    校园2021-Magento 提交消息应包括: 任务编号: #2 简短的任务名称: Add Websites: 做了什么:`为新域更新了Docker配置 例子: #2 Add Websites: updated Docker configuration for new domain Git Flow DV。...

    magento:Magento的免费PWA和SPA

    VueFrontCMS Connect App for Magento 显示你的 :red_heart: -给我们一个 :star: 帮助我们将这个项目发展到最好! VueFront是CMS不可知的SPA和PWA前端,适用于您的老式Blog和电子商务网站。 Magento通过最佳的电子...

    magento结构和原理

    magento结构和原理 magento结构和原理是magento...通过了解magento的文件目录结构、URL路由与分发器、模板调用对应的JS、CSS、图片、重写核心模块等知识点,可以更好地理解magento的工作机理和开发magento模块和主题。

    magento:magento 项目

    马恩托 magento 项目

    magento创建动态菜单 Create Dynamic CMS Navigation For Magento Frontend

    在这个主题中,“Create Dynamic CMS Navigation For Magento Frontend”指的是在Magento的前端生成可以根据CMS页面自动生成的动态菜单。 在Magento中,静态菜单通常是通过后台管理界面手动创建和维护的,而动态...

    magento2.4在windows下运行补丁文件.zip

    对于文件替换补丁,例如压缩包中的“magento2.4覆盖文件”,你需要逐个将这些文件复制到你的Magento根目录相应的位置,覆盖原有的文件。务必谨慎操作,确保你了解每个文件的作用。 6. **运行命令行工具**:Magento ...

    magento商城数据库

    本文件是 Magento 数据库的建库文件,用于快速构建和初始化 Magento 系统所需的完整数据库结构。 SQL 文件是数据库结构和数据的脚本表示,通常包含创建表、索引、视图、触发器和存储过程等数据库对象的指令。在这个...

    magento:Puglin Magento

    $ cd /path/to/magento $ modgit init $ modgit add epicomtech_magento https://github.com/epicomtech/magento.git Antes deComeçar Epicom的API协议 通过电子邮件联系API,电子邮件地址: Conhecendo omó...

    magento:magento-ce 2.4.0

    "magento-master" 文件夹很可能包含了 Magento 2.4.0 的源代码,开发者可以深入研究这些文件,了解其内部结构和工作原理,以便进行二次开发或自定义功能。在实际项目中,开发者通常会按照 Magento 的开发指南进行...

Global site tag (gtag.js) - Google Analytics