程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 使用CodeIgniter的類庫做圖片上傳

使用CodeIgniter的類庫做圖片上傳

編輯:關於PHP編程

CodeIgniter 的文件上傳類允許文件被上傳。您可以設置指定上傳某類型的文件及指定大小的文件。

上傳文件普遍的過程:

  • 一個上傳文件用的表單,允許用戶選擇一個文件並上傳它。
  • 當這個表單被提交,該文件被上傳到指定的目錄。
  • 同時,該文件將被驗證是否符合您設定的要求。
  • 一旦文件上傳成功,還要返回一個上傳成功的確認窗口。

下面是表單:

<form method="post" action="<?=base_url()?>admin/img_upload/" enctype="multipart/form-data" />
	<div >
		<input type="file" name="userfile" size="20" class="button" />
		<input type="submit" value=" 上傳 " class="button" />
	</div>
</form>

然後是下面是上傳類:

	public function img_upload()
	{
		$this->load->helper('url');
		
		$config['upload_path'] = './images/'.date('Ym', time()).'/';
		$config['allowed_types'] = 'gif|jpg|png';
		$config['file_name'] = date('Y_m_d', time()).'_'.sprintf('%02d', rand(0,99));
		$config['max_size'] = '500';
		$config['max_width']  = '1024';
		$config['max_height']  = '768';
		
		$this->load->library('upload', $config);
		
		if ( !$this->upload->do_upload())
  		{
   			$error = array('error' => $this->upload->display_errors());
  		} 
		else
  		{
   			$data = array('upload_data' => $this->upload->data());
  		}
	}

偏好設置參數

偏好設置默認值選項描述upload_pathNoneNone文件上傳路徑。該路徑必須是可寫的,相對路徑和絕對路徑均可以。allowed_typesNoneNone允許上傳文件的MIME類型;通常文件擴展名可以做為MIME類型. 允許多個類型用豎線‘|’分開file_nameNone想要使用的文件名

如果設置了這個參數,CodeIgniter 將根據這裡設置的文件名來對上傳的文件進行重命名。文件名中的擴展名也必須是允許的文件類型。

overwriteFALSETRUE/FALSE (boolean)是否覆蓋。該參數為TRUE時,如果上傳文件時碰到重名文件,將會把原文件覆蓋;如果該參數為FALSE,CI將會在新文件的文件名後面加一個數字。If set to true, if a file with the same name as the one you are uploading exists, it will be overwritten. If set to false, a number will be appended to the filename if another with the same name exists.max_size0None允許上傳文件大小的最大值(以K為單位)。該參數為0則不限制。注意:通常PHP也有這項限制,可以在php.ini文件中指定。通常默認為2MB。max_width0None上傳文件的寬度最大值(像素為單位)。0為不限制。max_height0None上傳文件的高度最大值(像素為單位)。0為不限制。max_filename0None文件名的最大長度。0為不限制。encrypt_nameFALSETRUE/FALSE (boolean)是否重命名文件。如果該參數為TRUE,上傳的文件將被重命名為隨機的加密字符串。當你想讓文件上傳者也不能區分自己上傳的文件的文件名時,是非常有用的。當 overwrite 為 FALSE 時,此選項才起作用。remove_spacesTRUETRUE/FALSE (boolean)參數為TRUE時,文件名中的空格將被替換為下劃線。推薦使用。

幾個用到的函數

  • $this->upload->do_upload():根據你的偏好配置參數執行操作。注意:默認情況下上傳的文件來自於提交表單裡名為userfile的文件域,並且該表單必須是 "multipart"類型。
  • $this->upload->display_errors():如果do_upload()返回失敗,顯示錯誤信息。此函數不會自動輸出,而是返回數據,所以你可以按你的要求安排。
  • $this->upload->data():這是一個輔助函數,它返回你上傳文件的所有相關信息的數組。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved