㈠ thinkphp3.2.3文件上傳怎麼配置cofig
$config = array(
'mimes' => array(), //允許上傳的文件MiMe類型
'maxSize' => 0, //上傳的文件大小限制 (0-不做限制)
'exts' => array(), //允許上傳的文件後綴
'autoSub' => true, //自動子目錄保存文件
'subName' => array('date', 'Y-m-d'), //子目錄創建方式,[0]-函數名,[1]-參數,多個參數使用數組
'rootPath' => './Uploads/', //保存根路徑
'savePath' => '', //保存路徑
'saveName' => array('uniqid', ''), //上傳文件命名規則,[0]-函數名,[1]-參數,多個參數使用數組
'saveExt' => '', //文件保存後綴,空則使用原後綴
'replace' => false, //存在同名是否覆蓋
'hash' => true, //是否生成hash編碼
'callback' => false, //檢測文件是否存在回調,如果存在返迴文件信息數組
'driver' => '', // 文件上傳驅動
'driverConfig' => array(), // 上傳驅動配置
);
$upload = new \Think\ Upload($config);
㈡ php文件上傳時,關於臨時目錄的問題,我想知道的是,默認路徑是C:\WINDOWS\temp,但是後面怎麼會多出
通常,從安全性考慮,上傳文件的文件保存在一個臨時目錄裡面,並且取了一個隨機的字元串進行命名,由於臨時目錄的特性,你需要在這個文件被系統刪除之前,及時將這個文件轉存到你指定的位置。如果想看文件的原名稱,可以用 $_FILES['myFile']['name']。
以下是 $_FILES 全局數組的詳細內容:
$_FILES['myFile']['name'] 客戶端文件的原名稱。
$_FILES['myFile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳文件的大小,單位為位元組。
$_FILES['myFile']['tmp_name'] 文件被上傳後在服務端儲存的臨時文件名,一般是系統默認。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函數設置是不起作用的。
$_FILES['myFile']['error'] 和該文件上傳相關的錯誤代碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們在PHP3.0以後成了常量)
㈢ php獲取文件mime類型的幾種方法
在PHP中獲取文件的MIME類型,可以採用多種方法。首先,可以使用mime_content_type函數,它在php.ini中需要配置開啟mbstring擴展。例如:
echo mime_content_type('php.gif');
輸出:image/gif
text/plain
但是,從PHP 5.3.0開始,推薦使用Fileinfo擴展來獲取文件的MIME類型,因為mime_content_type函數在某些情況下可能會返回不準確的結果。Fileinfo擴展需要在php.ini中開啟,且在PHP 5.3.0及以上版本中默認支持。使用方法如下:
$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);
這里,$mimetype變數將存儲文件的MIME類型。
此外,還可以利用image_type_to_mime_type函數來獲取圖片的MIME類型,它適用於處理圖像文件。此函數不需要額外配置,直接使用即可。
對於通過PHP上傳文件的情況,可以通過檢查$_FILES['uploadfile']['type']來獲取文件的MIME類型。雖然此方法在某些PHP版本中已被廢棄,但仍然可用。其用法如下:
if (isset($_FILES['uploadfile']['type'])) {
echo $_FILES['uploadfile']['type'];
}
總之,根據實際需求選擇合適的MIME類型獲取方法,可以提高代碼的穩定性和兼容性。無論是使用內置函數還是擴展,都需要確保伺服器配置正確,並且有足夠的許可權訪問文件。
在開發過程中,確保對文件的MIME類型進行准確判斷,有助於提升用戶體驗,特別是在處理上傳文件或生成動態內容時尤為重要。正確的MIME類型不僅能確保文件在客戶端正確顯示,還能增強安全性,避免潛在的威脅。