繁体   English   中英

在Joomla PHP中上传图片时出现问题

[英]Issue uploading image in Joomla PHP

我正在使用Joomla并为K2 Component创建了图片库。 我想将图像上传到我的画廊,并用于远离垃圾名称,我使用了$fileName = preg_replace('/[^\\w\\._]+/', '_', $fileName); 通过这种方式,我可以上传带有“-(破折号)”的图像,但是在上传带有“空格”的图像时会出现问题,并给出错误。

 **JFile: :copy: Cannot find or read file: $/opt/lampp/htdocs/joomla_2.5/images/folkgallery/tmp/14 .jpg**

当我删除上面的代码preg_match时,我可以上传带有空格的图像,但不能上传带有-(破折号)的图像。 因此,请提供一种可以上传包含任何类型图像名称的图像的方法。

在常规权限上添加一个\\ s以匹配该空间。

[^ \\ w \\ s._]

编辑:经过更多测试,我认为此表达式足以满足您的需求:

preg_replace('/[_|\s]+/i', '-', 'fil ename_1.jpg');

将产生

fil-ename-1.jpg

但是,对于Joomla,我敢打赌最好使用它(如此处所述: http : //docs.joomla.org/Secure_coding_guidelines#File_uploads

$file = JRequest::getVar( 'Filedata', '', 'files', 'array' );

jimport('joomla.filesystem.file');
$file['name'] = JFile::makeSafe($file['name']);

if (isset( $file['name'] )) {
    $filepath = JPath::clean( $somepath.'/'.strtolower( $file['name'] ) );
    JFile::upload( $file['tmp_name'], $filepath );
}

链接已过期(不建议使用JRequest,建议使用JInput),但是它可以解决您的问题。

问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM