程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> Php文件上傳類class.upload.php

Php文件上傳類class.upload.php

編輯:PHP基礎知識
 

Class.upload.php是用於管理上傳文件的php文件上傳類, 它可以幫助你快速的給自己的網站集成上傳文件功能。不僅如此,此分類還有一些列的處理功能,可以對上傳的文件或者本地的文件進行處理,其圖片處理功能比較 強大,包括圖片的縮放、旋轉、剪裁、類型轉換、應用濾鏡、添加邊框文字和水印等。支持的圖片類型是png、jpg、gif和bmp。

 

使用方法

首先我們要有一個用於提交上傳文件的表單,如下,注意表單要寫上enctype="multipart/form-data"。

<form enctype="multipart/form-data" method="post" action="upload.php">

<input type="file" size="32" name="image_field" value="">

<input type="submit" name="Submit" value="upload">

</form>

然後創建表單處理腳本文件upload.php,在腳本中添加如下程序。含義請看注釋

$handle = new upload($_FILES[‘image_field’]);

//image_field是表單中上傳控件的name屬性,創建一個類的實例並用$_FILES[‘ image_field ‘]初始化,現在這個類已經知道你要處理哪個文件,並對文件的位置大小等信息了如指掌。

if ($handle->uploaded) {

//這個判斷是個安全選項,看一下這個文件真的是正規途徑過來的上傳文件嗎。

$handle->file_new_name_body = 'image_resized';//給這個文件起個名字吧, 注意這個是不帶擴展名的部分,如果有與之同名的文件,默認的行為是重命名。

$handle->image_resize = true;//我們傳了一張圖片,需要對它進行縮放,設置縮放屬性為true

$handle->image_x = 100;//縮放要有標准,這裡我們以寬度為基准,寬度必須是100像素

$handle->image_ratio_y = true;//你也可以指定一個具體的長度數值,寫法是$handle->image_y = [數值],這裡是告訴程序以寬度為基准,高度按比例縮放。

$handle->process('/home/user/files/');//在執行這句話之前,你還可以設定更多的處理選項,比如是否對圖 片進行旋轉剪裁,設定好了,就用這句話來執行圖片處理和上傳。圖片處理時會創建一個原圖片的副本,不會修改原始文件,原始文件存在於php的臨時文件夾 中,在linux服務器上可能是/tmp目錄。這樣你可以對同一張上傳的圖片進行多次處理,並指定上傳到不同的位置。這裡'/home/user /files/'指定了文件要被復制到的位置。

if ($handle->processed) {

echo 'image resized';

$handle->clean();//如果文件成功上傳,就清除掉這個對源文件的引用,此後將不能再對剛才上傳到臨時文件夾的圖片進行處理和復制了。

} else {

echo 'error : ' . $handle->error;

}

}

 

如何直接下載圖片,如果你是做在線圖片處理程序,這個很有用。

$handle = new upload($_FILES[‘image_field’]);

header('Content-type: ' . $handle->file_src_mime);

header("Content-Disposition:attachment; filename=".rawurlencode($handle->file_src_name).";");

echo $handle->Process();

 

如何將圖片直接輸出到浏覽器

$handle = new upload($_FILES[‘image_field’]);

header('Content-type: ' . $handle->file_src_mime);

echo $handle->Process();

 

比較常用的處理參數,這些參數可以在調用$handle->process()之前設定處理方式

$handle->file_new_name_body = 'new name'

指定文件被上傳到指定位置後的名字,不包含擴展名的部分

$handle->file_new_name_ext = 'txt'

指定文件擴展名

$handle->mime_check = true;

指定是否對文件擴展名進行安全性檢查,默認是true,即進行檢查,注意這可能導致某些類型的文件無法上傳,比如.zip文件

$handle->allowed = array('application/pdf','application/msword', 'image/*');

指定允許上傳的文件mime類型

$handle->image_max_width = 200;

指定最大允許的圖片寬度,如果圖片超過此寬度將被視為不符合要求無法上傳,類似參數有$handle->image_max_height,,$handle->image_max_pixels,$handle->image_max_ratio等

 

在處理文件之前你可以讀取的文件信息

file_src_name:上傳文件的原始名稱,包括擴展名

file_src_name_body:原始名稱,不包括擴展名

file_src_name_ext:擴展名

file_src_pathname:文件完整的路徑和名稱

file_src_mime:mime類型

file_src_size: 文件大小

file_src_error: 上傳錯誤

file_is_image: 布爾類型,是否是圖片

 

如果文件是圖片,你還可以讀到

image_src_x,image_src_y,image_src_pixels,image_src_type,image_src_bits

 

文件處理了,也上傳了,能返回什麼,這個也是很有用的,如果你要記錄文件信息到數據庫或者顯示給用戶的話。

file_dst_path:上傳後的文件路徑

file_dst_name_body: 上傳後的文件名,不包括擴展名

file_dst_name_ext:上傳後的文件擴展名

file_dst_name:上傳後的文件全名

file_dst_pathname:上傳後的文件完整的路徑和名稱

如果文件是圖片,你還可以讀到

image_dst_x,image_dst_y,image_convert

 

這個上傳類兼容php4.3以上版本,需要GD的支持,強烈推薦使用GD2

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