php開發之檔案上傳,
1,配置php.ini檔案
主要對下面幾個屬性值進行設定:
2,預定義變數
列表如下:
建立一個上傳域,通過_FILES變數輸出上傳檔案的資料。範例程式碼如下:
<form action="" enctype="multipart/form-data" method="post" name="uploadfile">上傳檔案:<input type="file" name="upfile" /><br> <input type="submit" value="上傳" /></form> <?php if (is_uploaded_file($_FILES['upfile']['tmp_name'])) { $upfile =$_FILES["upfile"]; foreach ($upfile as $value) { echo $value."<br>"; }}?>
運行結果如下:
3,檔案上傳函數
php中使用move_uploaded_file()函數上傳檔案,文法如下:
bool move_uploaded_file(string filename,string destination)
該函數將檔案上傳到指定的位置,如果成功則返回true,失敗則返回false。參數filename,事臨時檔案名稱,即$_FILE[tmp_name];參數destination是上傳後儲存的新的路徑和名稱。
範例程式碼如下:
<form action="" enctype="multipart/form-data" method="post" name="uploadfile">上傳檔案:<input type="file" name="upfile" /><br> <input type="submit" value="上傳" /></form> <?php if (is_uploaded_file($_FILES['upfile']['tmp_name'])) { $upfile =$_FILES["upfile"]; if (move_uploaded_file($upfile['tmp_name'], $upfile['name'])) { echo "上傳成功"; }else{ echo "上傳失敗"; }}?>
運行結果如下:
4,多檔案上傳
多檔案上傳有多種方法,下面我們根據單檔案上傳來演化出一種多檔案上傳。程式碼範例如下:
<form action="index.php" enctype="multipart/form-data" method="post" name="uploadfile">上傳檔案:<br> <input type="file" name="upfile1" /><br><input type="file" name="upfile2" /><br><input type="file" name="upfile3" /><br><input type="submit" value="上傳" /><br> </form> <?php // header('Content-Type:text/html;charset=utf-8');$file1 =$_FILES['upfile1'];$file2 =$_FILES['upfile2'];$file3 =$_FILES['upfile3'];if ($file1['error'] == UPLOAD_ERR_OK){ echo "路徑:".$file1['name']."<br>"; if (move_uploaded_file($file1['tmp_name'], $file1['name'])) { echo "上傳成功<br>"; }else{ echo "上傳失敗<br>"; }}if ($file2['error'] == UPLOAD_ERR_OK){ echo "路徑:".$file2['name']."<br>"; if (move_uploaded_file($file2['tmp_name'], $file2['name'])) { echo "上傳成功<br>"; }else{ echo "上傳失敗<br>"; }} if ($file3['error'] == UPLOAD_ERR_OK){ echo "路徑:".$file3['name']."<br>"; if (move_uploaded_file($file3['tmp_name'], $file3['name'])) { echo "上傳成功<br>"; }else{ echo "上傳失敗<br>"; } } ?>
運行結果如下:
第二種多檔案上傳的方式的範例程式碼如下:
<form action="index.php" enctype="multipart/form-data" method="post" name="uploadfile">上傳檔案:<br> <input type="file" name="upfile[]" /><br><input type="file" name="upfile[]" /><br><input type="file" name="upfile[]" /><br><input type="submit" value="上傳" /><br> </form> <?php // header('Content-Type:text/html;charset=utf-8');$filearray =$_FILES['upfile'];print_r($filearray);foreach ($filearray['error'] as $key =>$error){ if ($error==UPLOAD_ERR_OK) { echo "檔案名稱:".$filearray['name'][$key]."<br>"; if (move_uploaded_file($filearray['tmp_name'][$key], $filearray['name'][$key])) { echo "上傳成功<br>"; }else{ echo "上傳失敗<br>"; } }}?>
運行結果如下:
除了上面的兩種,還有第三種多個檔案上傳的方式,當然也是我覺得最完美的方式,就是可以一次選擇多個檔案進行上傳。主要就是利用swfupload 來實現。由於我目前的知識有限,會在後面和大家共同學習這個。