?php

創(chuàng)新互聯(lián)公司于2013年成立,是專業(yè)互聯(lián)網技術服務公司,擁有項目成都網站設計、成都做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元宜州做網站,已為上家服務,為宜州各地企業(yè)和個人服務,聯(lián)系電話:18982081108
// $_FILES["file"]["type"] 其中["file"] html中標簽的name
if ((($_FILES["file"]["type"] == "image/gif") //檢查上傳的文件類型為gif
|| ($_FILES["file"]["type"] == "image/jpeg")//檢查上傳的文件類型為jpg
|| ($_FILES["file"]["type"] == "image/pjpeg"))//檢查上傳的文件類型為jpeg
($_FILES["file"]["size"] 20000))//檢查上傳的文件大小
{
if ($_FILES["file"]["error"] 0)//判斷是否為錯誤
{
echo "Return Code: " . $_FILES["file"]["error"] . "br /";//如果錯誤則輸出錯誤信息
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "br /"; //輸出文件名稱
echo "Type: " . $_FILES["file"]["type"] . "br /";//輸出文件類型
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kbbr /";//輸出文件大小
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "br /";//輸出臨時文件名稱
if (file_exists("upload/" . $_FILES["file"]["name"]))//判斷上傳文件是否存在upload文件夾里
{
echo $_FILES["file"]["name"] . " already exists. ";//如果存在則提示信息
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);//如果不存在則拷貝臨時文件到upload文件夾
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];//輸出上傳文件路徑+文件名稱
}
}
}
else
{
echo "Invalid file";//錯誤信息
}
?
PHP上傳文件非常簡單,你需要一個上傳的HTML文件(FORM),一個保存文件的PHP文件(保存),一個查詢上傳文件清單的工具。
真正實現(xiàn)完整功能的上傳和管理需要使用數據庫,我的網站俱樂部里面上傳文件一開放很快就傳了幾萬個文件。
最簡單的方法不用數據庫,可以用一個PHP文件實現(xiàn),這個文件列出指定目錄下的所有文件,然后提供一個上傳的FORM,最后檢測是否提交了FORM數據,是就保存文件到指定位置。
--------------------------------------------------------------------------------
文件上傳處理
POST 方法上傳
本特性可以使用戶上傳文本和二進制文件。用 PHP 的認證和文件操作函數,可以完全控制允許哪些人上傳以及文件上傳后怎樣處理。
PHP 能夠接受任何來自符合 RFC-1867 標準的瀏覽器(包括 Netscape Navigator 3 及更高版本,打了補丁的 Microsoft Internet Explorer 3 或者更高版本)上傳的文件。
相關的設置: 請參閱 php.ini 的 file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size 以及 max_input_time 設置選項。
請注意 PHP 也支持 PUT 方法的文件上傳,Netscape Composer 和 W3C 的 Amaya 客戶端使用這種方法。請參閱對 PUT 方法的支持以獲取更多信息。
例 39.1. 文件上傳表單
可以如下建立一個特殊的表單來支持文件上傳:
!-- The data encoding type, enctype, MUST be specified as below --
form enctype="multipart/form-data" action="__URL__" method="POST"
!-- MAX_FILE_SIZE must precede the file input field --
input type="hidden" name="MAX_FILE_SIZE" value="30000" /
!-- Name of input element determines name in $_FILES array --
Send this file: input name="userfile" type="file" /
input type="submit" value="Send File" /
/form
以上范例中的 __URL__ 應該被換掉,指向一個真實的 PHP 文件。
MAX_FILE_SIZE 隱藏字段(單位為字節(jié))必須放在文件輸入字段之前,其值為接收文件的最大尺寸。這是對瀏覽器的一個建議,PHP 也會檢查此項。在瀏覽器端可以簡單繞過此設置,因此不要指望用此特性來阻擋大文件。實際上,PHP 設置中的上傳文件最大值是不會失效的。但是最好還是在表單中加上此項目,因為它可以避免用戶在花時間等待上傳大文件之后才發(fā)現(xiàn)文件過大上傳失敗的麻煩。
注意: 要確保文件上傳表單的屬性是 enctype="multipart/form-data",否則文件上傳不了。
全局變量 $_FILES 自 PHP 4.1.0 起存在(在更早的版本中用 $HTTP_POST_FILES 替代)。此數組包含有所有上傳的文件信息。
以上范例中 $_FILES 數組的內容如下所示。我們假設文件上傳字段的名稱如上例所示,為 userfile。名稱可隨意命名。
$_FILES['userfile']['name']
客戶端機器文件的原名稱。
$_FILES['userfile']['type']
文件的 MIME 類型,如果瀏覽器提供此信息的話。一個例子是“image/gif”。不過此 MIME 類型在 PHP 端并不檢查,因此不要想當然認為有這個值。
$_FILES['userfile']['size']
已上傳文件的大小,單位為字節(jié)。
$_FILES['userfile']['tmp_name']
文件被上傳后在服務端儲存的臨時文件名。
$_FILES['userfile']['error']
和該文件上傳相關的錯誤代碼。此項目是在 PHP 4.2.0 版本中增加的。
文件被上傳后,默認地會被儲存到服務端的默認臨時目錄中,除非 php.ini 中的 upload_tmp_dir 設置為其它的路徑。服務端的默認臨時目錄可以通過更改 PHP 運行環(huán)境的環(huán)境變量 TMPDIR 來重新設置,但是在 PHP 腳本內部通過運行 putenv() 函數來設置是不起作用的。該環(huán)境變量也可以用來確認其它的操作也是在上傳的文件上進行的。
使文件上傳生效
請查閱函數 is_uploaded_file() 和 move_uploaded_file() 以獲取進一步的信息。以下范例處理由表單提供的文件上傳。
?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo 'pre';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "/pre";
?
接受上傳文件的 PHP 腳本為了決定接下來要對該文件進行哪些操作,應該實現(xiàn)任何邏輯上必要的檢查。例如可以用 $_FILES['userfile']['size'] 變量來排除過大或過小的文件,也可以通過 $_FILES['userfile']['type'] 變量來排除文件類型和某種標準不相符合的文件,但只把這個當作一系列檢查中的第一步,因為此值完全由客戶端控制而在 PHP 端并不檢查。自 PHP 4.2.0 起,還可以通過 $_FILES['userfile']['error'] 變量來根據不同的錯誤代碼來計劃下一步如何處理。不管怎樣,要么將該文件從臨時目錄中刪除,要么將其移動到其它的地方。
如果表單中沒有選擇上傳的文件,則 PHP 變量 $_FILES['userfile']['size'] 的值將為 0,$_FILES['userfile']['tmp_name'] 將為空。
如果該文件沒有被移動到其它地方也沒有被改名,則該文件將在表單請求結束時被刪除。
上傳一組文件
PHP 的 HTML 數組特性甚至支持文件類型。
form action="" method="post" enctype="multipart/form-data"
pPictures:
input type="file" name="pictures[]" /
input type="file" name="pictures[]" /
input type="file" name="pictures[]" /
input type="submit" value="Send" /
/p
/form
?php
foreach ($_FILES["pictures"]["error"] as $key = $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "data/$name");
}
}
?
PHP?一般使用?POST?方法上傳文件,下面是一個簡單的文件上傳示例,里面有相關的注釋:
up.htm?文件:
----------
html
head
meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312"
titleUp?Sample/title
/head
body
form?action="up.php"?method="post"?enctype="multipart/form-data"
!--備注:表單中?enctype="multipart/form-data?"?的意思,是設置表單的?MIME?編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;只有使用了?multipart/form-data?,才能完整的傳遞文件數據,進行下面的操作,并且?method?要設置為?"post"--
File:br?/
input?type="file"?name="upfile"?size="30"br?/
!--上傳框要設置?type="file"--
br?/
input?type="submit"?value="Upload"
/form
/body
/html
----------
up.php?文件
----------
?php
if?(is_uploaded_file($_FILES["upfile"]["tmp_name"])){
//如果有文件上傳
//is_uploaded_file?--?判斷文件是否是通過?HTTP?POST?上傳的,返回布爾值
//$_FILES['upfilename']['...'],其中的?'upfilename'?即為上傳框的?name?屬性
//$_FILES['upfile']['tmp_name']?--?文件被上傳后在服務端儲存的臨時文件名,一般是系統(tǒng)默認
if(!eregi('pdf',?$_FILES['upfile']['type'])){
//我們這里假設你要上傳一個?pdf?文件
//if(!eregi('pdf',?$_FILES['upfile']['type']))?這個是判斷上傳文件類型的,是不是?pdf?文件,當然,若是想判斷是否是?jpg?文件的話,將?pdf?改成?jpg?就可以了,即?if(!eregi('jpg',?$_FILES['upfile']['type']))
//$_FILES['upfile']['type']?是文件的?MIME?類型,如果瀏覽器提供此信息的話。例如“image/gif”
echo?'The?uploaded?file?is?not?an?pdf?File!?Please?upload?a?right?file!';
}else{
$filename?=?$_FILES['upfile']['name'];
//$filename?=?$_FILES['upfile']['name'],這里是指定上傳后的文件名,這里使用的仍是原來的文件名字,($_FILES['upfile']['name']?是原始文件的名字)
if(move_uploaded_file($_FILES["upfile"]["tmp_name"],?dirname(__FILE__)."/upload_file/".$filename)){
//這里就是上傳文件
//dirname(__FILE__)."/upload_file/".$file_name?--?指定上傳的目標文件,假設你要上傳的目標文件夾upload_file?是和當前文件(upload.php)在同一文件夾下
//chmod(dirname(__FILE__)."/upload_file/".?$file_name,?0444);
//上面注釋掉的是用來改變上傳后文件的屬性,444?即只有執(zhí)行和讀的權限(看情況加上)
echo?$_FILES["upfile"]["name"]?.?"?uploaded?succeed!!!";
}else{
echo?"Can't?upload!!!";
}
}
}else{
echo?"File?is?not?selected";
}
//需要注意的:
/*
在你的?up.php?同級目錄下建立?upload_file?文件夾,來存放上傳的文件
在上傳之前要看一下?php?的配置文件:php.ini?中的三處設置
1.是否允許文件上傳:(?file_uploads?=?On?)
2.文件上傳的最大?size:(?upload_max_filesize?)
3.post?的最大?size?(?post_max_size?)?這個大小設置成和?uplod_max_filesize?一樣大或比?uplod_max_filesize?大
*/
/*
這只是很簡單的一個文件上傳的例子,為了幫助理解,只是判斷了一下上傳文件的類型,還可以使用?if?語句來判斷上傳文件的大小($_FILES['upfile']['type'])),并進行提示控制等,相關可以查閱?$_FILE['upfile']?數組的各個值分別代表什么
*/
?
----------
可以看看?php100?里面的視頻,其中一節(jié)就是介紹文件上傳的.??:)
用navicat或者phpmyadmin等工具導出sql
在線上數據庫建立一個新的數據庫,然后用上述工具倒入即可
修改網站代碼中的數據庫配置文件,將新的數據庫ip、用戶名和密碼寫入
你可以使用FTP,把數據庫和文件壓縮上傳到網上去。你給出的圖片那不是數據庫文件,你要把數據庫導出來,只有一個sql后綴的數據庫文件。也可以在虛擬空間的phpadmin管理界面導入數據庫文件,希望能幫到你。
                網頁題目:phpim數據實時上傳 燃氣數據實時上傳
                
                本文鏈接:http://chinadenli.net/article32/hihdpc.html
            
成都網站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網站建設、域名注冊、移動網站建設、網站設計公司、網站維護、網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
