Joomla JFile 文件操作

2023-03-10 15:56 更新

Joomla的文件系統(tǒng)提供了對常規(guī)文件操作的封裝,主要由4個類 JFile,JFolder,JPath,JArchive來實(shí)現(xiàn)。本文主要講解JFile類的一些常用文件操作 

得到文件擴(kuò)展名

代碼:

$filename = "zmax.txt";
$ext = JFile::getExt($filename); //$ext="txt";

過濾文件擴(kuò)展名

代碼:

$filename = "zmax.txt";
$name = JFile::stripExt($filename); //$name="zmax";

清理文件名

代碼:

$safefilename = File::makeSafe($filename);

 這個函數(shù)會過濾掉文件名中不合法的字符(odd characters),返回一個安全的文件名

讀取文件內(nèi)容

代碼:

$filepath = JPATH_ROOT."/test.txt";
$content = JFile::read($filepath);

文件的路徑為絕對路徑或者相對index.php的相對路徑

寫入文件(清空模式)

代碼:

$filepath = JPATH_ROOT."/test.txt";
JFile::write($filepath,"I ma zmax");

這個函數(shù)會清空文件原有的內(nèi)容。如果需要追加內(nèi)容請使用append方法

寫入文件(追加模式)

代碼:

$filepath = JPATH_ROOT."/test.txt";
JFile::append($filepath,"I ma zmax");

原先的內(nèi)容會保留,新的內(nèi)容寫在文件的末尾

復(fù)制文件

代碼:

JFile::copy($src, $dest);

這個函數(shù)的實(shí)現(xiàn)是對PHP 的copy()函數(shù)的封裝,增加了對源文件是否存在,目標(biāo)路徑是否可用的檢查。本方法支持FTP層操作

刪除文件

代碼:

JFile::delete($filefullpath);

這個函數(shù)在刪除的時候會首先檢查文件是否存在,如果不存在則刪除失敗。同時在刪除的時候會進(jìn)行權(quán)限檢查,如果權(quán)限不正確,會嘗試更改權(quán)限。本方法支持FTP層操作 

上傳文件

JFile::upload($src, $dest);

這個函數(shù)是對PHP的 move_uploaded_file() 封裝,在上傳前會檢查路徑和權(quán)限是否正確。

示范代碼

本代碼演示了如何上傳一個文件

前臺界面:

<form name="upload" action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file_upload" />
<input type="submit" />
</form>

說明: 創(chuàng)建表單,選擇上傳文件的,點(diǎn)擊提交后,會進(jìn)入到后臺的upload.php中處理代碼邏輯。為了確保上傳文件成功,比如在form元素中指定 enctype="multipart/form-data"

 后臺上傳邏輯:

<?php
// 獲得提交的文件內(nèi)容
$file = JFactory::getApplication()->input->files->get('file_upload');
 
// 導(dǎo)入文件操作庫文件
jimport('joomla.filesystem.file');
 
// 過濾文件名 
$filename = JFile::makeSafe($file['name']);
 
// 得到源文件和目標(biāo)文件的地址
$src = $file['tmp_name'];
$dest = JPATH_COMPONENT . DS . "uploads" . DS . $filename;
 
// 檢查后綴,只允許上傳jpg
if (strtolower(JFile::getExt($filename)) == 'jpg') 
{
   // TODO: 安全檢查的代碼.
 
   if (JFile::upload($src, $dest))
   {
      // Redirect to a page of your choice.
   } 
   else
   {
      // Redirect and throw an error message.
   }
}
else
{
   // Redirect and notify user file does not have right extension.
}
?>

 


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號