【发布时间】:2011-03-24 06:16:32
【问题描述】:
您好,我正在 joomla 中制作一个简单的组件,其中包含名称图像细节,我必须上传该图像如何从后端上传图像。使用扩展或定制哪个更好。你能分享任何好的文章吗?我搜索了更多,但由于缺乏对 joomla 的想法而无法找到。希望各位高手帮帮我。
谢谢我提前
【问题讨论】:
您好,我正在 joomla 中制作一个简单的组件,其中包含名称图像细节,我必须上传该图像如何从后端上传图像。使用扩展或定制哪个更好。你能分享任何好的文章吗?我搜索了更多,但由于缺乏对 joomla 的想法而无法找到。希望各位高手帮帮我。
谢谢我提前
【问题讨论】:
Joomla 组件对于您的需求的确切场景将很难找到。所以你有两个选择: 1.制作自己的组件 2. 自定义其他类似类型的组件,如图库组件
如果您正在制作自己的组件,则用于在管理员上从 joomla 组件上传文件:
1.只需使用move_uploaded_file php函数。
2. 复制此代码,用于 joomla 的标准 fxn:
function upload($src, $dest)
{
jimport('joomla.client.helper');
$FTPOptions = JClientHelper::getCredentials('ftp');
$ret = false;
$dest = JPath::clean($dest);
$baseDir = dirname($dest);
if (!file_exists($baseDir)) {
jimport('joomla.filesystem.folder');
JFolder::create($baseDir);
}
if ($FTPOptions['enabled'] == 1) {
jimport('joomla.client.ftp');
$ftp = & JFTP::getInstance($FTPOptions['host'], $FTPOptions['port'], null, $FTPOptions['user'], $FTPOptions['pass']);
$dest = JPath::clean(str_replace(JPATH_ROOT, $FTPOptions['root'], $dest), '/');
if (is_uploaded_file($src) && $ftp->store($src, $dest))
{
$ret = true;
unlink($src);
} else {
JError::raiseWarning(21, JText::_('WARNFS_ERR02'));
}
} else {
if (is_writeable($baseDir) && move_uploaded_file($src, $dest)) { // Short circuit to prevent file permission errors
if (JPath::setPermissions($dest)) {
$ret = true;
} else {
JError::raiseWarning(21, JText::_('WARNFS_ERR01'));
}
} else {
JError::raiseWarning(21, JText::_('WARNFS_ERR02'));
}
}
return $ret;
}
如果你想使用别人的组件并根据需要编辑它,下载它: http://prakashgobhaju.com.np/index.php?option=com_showcase_gallery&view=items&catid=1&Itemid=64 请记住,它是一个图库组件。
【讨论】:
在您的 Joomla 网站上上传任何文件(无论是图像)都非常简单,可以使用基于 Web 的 FTP 或桌面 FTP 服务(如 filezilla)来完成,但前提是您保存了您想要的文件上传。使用基于 Web 的方式,您需要登录到您的主机,例如 000webhost,找到文件管理器选项,单击它并输入您的域用户名和密码。然后转到 public_html 文件夹,为您的照片或图像创建一个新文件夹,然后单击上传。找到您的图片并点击勾选链接开始上传。
使用桌面方式,您需要解压缩文件以添加到 joomla,打开像 filezilla 这样的 FTP 客户端,在本地主机上找到文件,输入主机提供的登录详细信息,然后登录后通过 filezilla 到您的帐户,找到您要添加文件的位置并点击上传。
你可以在这里找到一个类似的教程http://www.thekonsulthub.com/how-tos/how-to-upload-joomla-with-filezilla-to-your-hosting-servers-cpanel/ {entire thing}
【讨论】:
请确保您使用 MediaHelper 中提供的过滤功能。特别是永远不要信任上传的图像,始终首先检查它们是否是有效的文件类型,然后检查它们是否在您的全局配置中列出的已批准文件类型列表中,名称不包含 html 或 javascript,并且文件本身包含不包含代码。特别是我会推荐 MediaHelper::canUpload 方法,它将为您检查大部分这些内容。如果有的话,你应该更加强烈地检查。还要确保您正在检查用户是否具有上传权限。如果有的话,您应该使检查更加严格。使用 joomla 为您提供的 API,例如内置媒体字段。
【讨论】: