簡體   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