用于创建图片的组件。需要上传图片。上传的图片应保存在创建的组件中
Posted
技术标签:
【中文标题】用于创建图片的组件。需要上传图片。上传的图片应保存在创建的组件中【英文标题】:component for creating images.need to upload images .the images uploaded should be saved in component created 【发布时间】:2012-12-18 23:49:33 【问题描述】:我正在创建一个用于在前端显示图像的 Joomla 2.5 组件。在管理方面,我需要使用文件上传器来保存多个图像。谁能告诉我这样做的任何来源? 这是我写的上传文件的功能。
function fileUpload($max, $module_dir, $file_type, $msg)
$file = JRequest::getVar('file_upload', null, 'files', 'array');
if(isset($file))
//Clean up filename to get rid of strange characters like spaces etc
$filename = JFile::makeSafe($file['name']);
if($file['size'] > $max) $msg = JText::_('ONLY_FILES_UNDER').' '.$max;
//Set up the source and destination of the file
$src = $file['tmp_name'];
$dest = $module_dir . DS . $filename;
//First check if the file has the right extension, we need jpg only
if ($file['type'] == $file_type || $file_type == '*')
if ( JFile::upload($src, $dest) )
//Redirect to a page of your choice
$msg = JText::_('FILE_SAVE_AS').' '.$dest;
else
//Redirect and throw an error message
$msg = JText::_('ERROR_IN_UPLOAD');
else
//Redirect and notify user file is not right extension
$msg = JText::_('FILE_TYPE_INVALID');
$msg = "<script>alert('". $msg ."');</script>";
return $msg;
$user =& JFactory::getUser();
$username = $user->get('username');
$acc = 0;
$session =& JFactory::getSession();
if(isset($user_names))
$more = strpos($user_names, ',',0);
if($more >0)
$user_names = explode(',',$user_names);
foreach($user_names as $un)
if($un == $username)
$session->set($acc, 1);
else
$session->set($acc, 0);
else
if ($user_names == $username) $session->set($acc, 1);
else
if(isset($username)) $session->set($acc, 1);
if($session->get($acc) == 1)
?>
<?php
print fileUpload($max, $module_dir, $file_type, $msg);
【问题讨论】:
【参考方案1】:正如 Tornado 所说,您可以使用 SWFUpload 脚本。但是,当我们尝试使用它时,由于文档不是很好,因此需要很长时间才能集成。因此决定基于此制作一个独立组件,该组件易于集成到第三方组件中,例如您的组件。如果你想使用它,你可以从这里下载:
http://joomjunk.co.uk/products/component-home/swfupload.html
还有一个小的文档选项卡告诉您需要做什么以及要编辑哪些文件。
希望对你有帮助
【讨论】:
谢谢你。我已经看过了。但我无法理解他们的文档。所以我忽略了自己的文档 将 swf 文件夹复制到 component.wat 后必须完成。我无法理解第四点 @ganesh,config.xml 包含组件的参数。因此这些需要复制过来。如果您已经有 config.xml,则将它们复制过来,如果没有,则使用整个文件。然后在里面,更改上传路径的默认值。如果您不想使用参数,请按照接下来的 4 个步骤操作。 @looder 感谢您的指导。我正在上传文件。但完成后它显示文件上传 500 错误。我的设置有什么问题吗? 检查您要上传的文件是否与参数一致【参考方案2】:您可以使用 SWF 文件上传器为您的组件制作图像或文件上传功能。请参阅此链接,它可能会有所帮助。
Creating a file uploader in your component
【讨论】:
以上是关于用于创建图片的组件。需要上传图片。上传的图片应保存在创建的组件中的主要内容,如果未能解决你的问题,请参考以下文章