国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php中上傳圖片文件的PHP函數

2024-09-04 11:44:49
字體:
來源:轉載
供稿:網友

在php中上傳圖片我們全結合$_files 與move_uploaded_file函數來一起操作,從而實現從客戶端把文件上傳到服務器端了,下面一起來看看具體的操作子.

編程環境

PHP5.2.4,基本上PHP4.3以上版本,此代碼都可以使用.

準備工作

檢查upload_tmp_dir項

如果PHP的開發環境是自行搭建的,你需要在編寫文件上傳程序前編輯php.ini文件,找到并編輯upload_tmp_dir選項,此項用來設定文件上傳至服務器時的臨時文件夾,比如upload_tmp_dir = E:/phpos/uploads,然后再重啟Apache,如果PHP的開發環境使用的是傻瓜式一鍵安裝包,一般upload_tmp_dir都是設定好了的,你也可以用phpinfo()函數查看下配置.

PHP實例代碼如下:

  1. <input name="userfile" type="file"
  2. if (! emptyempty ( $_FILES ['file'] ['name'] )) { 
  3.  $img = $this->up_file ( "file" ); 
  4. //up_file()函數: 
  5. function up_file($inputname$destinate = "../data/agency/"$type = ""$maxSize = 0) { 
  6.  $arr = explode ( '.'$_FILES [$inputname] ['name'] ); 
  7.  $count = count ( $arr ); 
  8.  $typearr = explode ( ','$type ); 
  9.  
  10.  if (! emptyempty ( $type )) { 
  11.   if (! in_array ( $arr [$count - 1], $typearr )) { 
  12.    $this->show_warning ( '文件類型不允許上傳' ); 
  13.    exit (); 
  14.   } 
  15.  } 
  16.  if ($maxSize != 0) { 
  17.   if (($_FILES [$inputname] ['size'] / 1000) >= $maxSize) { 
  18.    $this->show_warning ( '文件大小超過限制' ); 
  19.    exit (); 
  20.   } 
  21.  } 
  22.  
  23.  if (! emptyempty ( $destinate )) { 
  24.   $destinate = substr ( str_replace ( """/"$destinate ), - 1 ) == "/" ? $destinate : $destinate . "/"
  25.   if (! is_writable ( $destinate )) { 
  26.    $this->show_warning ( '文件目錄發生錯誤' ); 
  27.    exit (); 
  28.   } 
  29.  } 
  30.  $filename = date ( "YmdHis" ) . (microtime () * 1000000) . "." . $arr [$count - 1]; 
  31.  
  32.  if (is_file ( $destinate . $filename )) { 
  33.   up_file ( $inputname$destinate = ""$type = ""$maxSize = 0 ); 
  34.  } else { 
  35.   $filename = $filename
  36.  } 
  37.  copy ( $_FILES [$inputname] ['tmp_name'], $destinate . $filename ); 
  38.  @unlink ( $_FILES [$inputname] ['tmp_name'] ); 
  39.  return $filename

以上范例中 $_FILES 數組的內容如下所示,我們假設文件上傳字段的名稱為 userfile(名稱可隨意命名)

如何上傳多個文件?比如同時上傳3個文件,只需將如下代碼:

<input name="userfile" type="file"> 改成

<input name="userfile[]" type="file">

<input name="userfile[]" type="file">

<input name="userfile[]" type="file">

對應的在調用此函數時,$_FILES['userfile']['name'][0],代表第一個文件的相關文件信息,依此類推,其他也一樣.

$_FILES['userfile']['name'] 客戶端機器文件的原名稱.

$_FILES['userfile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如“image/gif”.

$_FILES['userfile']['size'] 已上傳文件的大小,單位為字節。 

$_FILES['userfile']['tmp_name'] 文件被上傳后在服務端儲存的臨時文件名。 

$_FILES['userfile']['error'] 和該文件上傳相關的錯誤代碼

值:0; 沒有錯誤發生,文件上傳成功。 

值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。 

值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。 

值:3; 文件只有部分被上傳。 

值:4; 沒有文件被上傳。

上傳大文件失敗的解決辦法:

文件上傳時存放文件的臨時目錄必須是開啟的并且是 PHP 進程所有者用戶可寫的目錄,如果未指定則 PHP 使用系統默認值.

max_execution_time = 90

file_uploads = On 

upload_max_filesize = 2M 設定文件上傳的大小的最大值.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍州市| 镇坪县| 镶黄旗| 泸西县| 二连浩特市| 惠东县| 新兴县| 正安县| 中卫市| 祁阳县| 定襄县| 伊川县| 宁晋县| 自治县| 敦化市| 卢龙县| 阜南县| 兴文县| 疏附县| 二连浩特市| 汝州市| 乌拉特后旗| 湖北省| 阳信县| 襄城县| 安义县| 淅川县| 杭州市| 翼城县| 临湘市| 犍为县| 丹寨县| 中江县| 宣恩县| 临潭县| 崇礼县| 肃南| 河曲县| 突泉县| 元谋县| 昂仁县|