[英]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.