經(jīng)驗(yàn)總結(jié):示例PHP上傳文件代碼
今天看了一本關(guān)于PHP的書,讓我了解了PHP上傳文件的方法,最主要的兩個(gè)函數(shù)是move_uploade_file(臨時(shí)文件,目標(biāo)位置和文件名)和is_uploaded_file(),前者用來移動(dòng)上傳后保存在服務(wù)器緩存區(qū)的文件到目標(biāo)文件,后者用來判斷文件是否上傳成功。除了以上兩個(gè)函數(shù)之外,還要說明一下form標(biāo)簽中enctype的值應(yīng)該如下:
- <formenctypeformenctype="multipart/form-data"method="post"name="upform">
只有其值為multipart/form-data才能保證以正確的編碼方式上傳文件。input標(biāo)簽type屬性中的"file"
- <inputnameinputname="upfile"type="file">
#T#另一個(gè)系統(tǒng)函數(shù)是$_FILES,$_FILES['myFile']['name']客戶端文件的原名稱、$_FILES['myFile']['type']文件的MIME類型,例如"image/gif"、$_FILES['myFile']['size']已上傳文件的大小,單位為字節(jié)、$_FILES['myFile']['tmp_name']儲存的臨時(shí)文件名,一般是系統(tǒng)默認(rèn)、$_FILES['myFile']['error']該文件上傳相關(guān)的錯(cuò)誤代碼。這個(gè)函數(shù)將上傳文件的信息分割成數(shù)組形式保存在不同的數(shù)組元素中,例如,文件名的值存儲在$_FILES['myFile']['name']中。下面附上自己寫的簡單的PHP上傳文件代碼:
PHP上傳文件代碼類saveupload.php
- <?php
- if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
- $upfile=$_FILES["upfile"];//如果已經(jīng)選定了要上傳的文件,將其索引保存在$upfile中
- //分別去上傳文件的名字,類型等
- $name=$upfile["name"];
- $type=$upfile["type"];
- $size=$upfile["size"];
- $tmp_name=$upfile["tmp_name"];
- $error=$upfile["error"];
- //設(shè)定上傳文件類型
- switch($type){
- case'image/pjpeg':
- $ok=1;
- break;
- case'image/jpeg':
- $ok=1;
- break;
- case'image/png':
- $ok=1;
- break;
- case'image/gif':
- $ok=1;
- break;
- }
- //如果文件類型合法并且$error返回值為0,說明上傳成功
- if($ok&&$error=='0'){
- move_uploaded_file($tmp_name,'up/'.$name);//將保存在緩存的文件移動(dòng)到指定目錄下
- echo"上傳成功";
- }
- }
- ?>
PHP上傳文件代碼上傳頁面upload.php
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">
- <head>
- <metahttp-equivmetahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
- <title>upload</title>
- <styletypestyletype="text/css">
- <!--
- body{
- background-color:#CFF;
- text-align:center;
- }
- -->
- </style></head>
- <body>
- 文件上傳
- <hr/>
- <formidformid="form1"name="form1"method="post"action="saveupload.php"enctype="multipart/form-data">
- 上傳文件:
- <label>
- <inputtypeinputtype="file"name="upfile"/>
- </label>
- <label>
- <inputtypeinputtype="submit"name="button"id="button"value="上傳"/>
- </label>
- </form>
- </body>