天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

上傳多個文件的PHP腳本

譯者注:本文的原名是《Creating a Multi-File Upload Script in php》。我個個覺得這文章寫得一般,代碼也不是非常專業,但是它比較短,而且一時間也找不到好一點的文章,就把這個譯過來了。其實php手冊里也有一節是說多文件上傳的,大家可以對比對比。文章內有的字句譯出來不太順眼,所以按照原意作了一定量的修改。本人水平有限,還望各位高手多指點。 

導言

  作為一個php的程序員,我曾遇到過這么一個客戶,他需要一個可以同時上傳多個文件的表單。因此,一天夜里我就用了一個小時的時間,找到了最好最簡單的方法來完成這個要求。在這篇教程里,“for”這個循環語句,將會成為核心代碼。

腳本1:讓用戶設定需要上傳的文件數目

uploadForm1.php

<html>
<head>
<title>文件上傳</title>
</head>
<body>
<form name="form1" method="post" action="uploadForm2.php">
  <p>請輸入你要同時上傳的文件的數目,最大值是9</p>
  <p>
    <input name="uploadNeed" type="text" id="uploadNeed" maxlength="1">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
</body>
</html>

  上面的HTML代碼非常簡單。在這段代碼里,我把uploadNeed這個組件的maxlength屬性設為1,那么用戶所能輸入的最大值就是9了。當然,你可以根據需要自行修改這部份。

腳本2:創建動態表單

  好了,做好下面的這個頁面以后,我們就完成全部工作的一半了。我們用for循環語句來完成這個任務。

uploadForm2.php

<html>
<head>
<title>文件上傳</title>
</head>
<body>
<form name="form1" enctype="multipart/form-data" method="post" action="processFiles.php">
  <?php
  // 創建動態表單
  $uploadNeed = $_POST['uploadNeed'];
  for($x=0;$x<$uploadNeed;$x++){
  ?>
    <input name="uploadFile<?php echo $x;?>" type="file" id="uploadFile<?php echo $x;?>">
  <?php
  // 完成循環
  }
  ?>
  <input name="uploadNeed" type="hidden" value="<?php echo $uploadNeed;?>">
    <input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>

  在這個頁面里,我只是創建了一個帶有“type”屬性的HTML表單。在表單中間,我插入了一段php代碼來完成循環。我把$x設為0并且把循環次數設為所需要的值$uploadNeed(就是剛才用戶提交的那個值)。我還把$uploadNeed的值輸出到hidden域里,以便它能傳遞到最后的一個頁面。

  作這些工作的目的是為了把$x這個變量的值,加在“name”屬性的值“uploadFile”的后面。這樣每個“name”屬性的值“uploadFile”的后面都會有一個不同的數字來區別第一個文件。

腳本3:處理上傳文件

現在就來完成上傳文件的最后一步

processFiles.php

<?php
$uploadNeed = $_POST['uploadNeed'];
// 開始循環
for($x=0;$x<$uploadNeed;$x++){
$file_name = $_FILES['uploadFile'. $x]['name'];
// 去除文件名中的特殊字符
$file_name = stripslashes($file_name);
$file_name = str_replace("'","",$file_name);
$copy = copy($_FILES['uploadFile'. $x]['tmp_name'],$file_name);
// 檢查是否復制成功
if($copy){
echo "$file_name 上傳成功<br />";
}else{
echo "$file_name 上傳失敗<br />";
}
} // 結束循環
?>

  在這個腳本里,我們首先要從uploadForm2.php中獲取$uploadNeed這個變量。和前頁那個頁面一樣,我們用“for”語句來還創建循環。不同的時,我們需要在循環內使用預定義全局變量$_FILES,我把它傳遞給了$file_name這個變量。

  下一步,我們調用了stripslashes和str_replace兩個函數來處理。由于文件名內可能包含一些特殊字符,所以我們使用stripslashes函數來防止上傳時出現解釋錯誤。

  注意我是如何添加$x這個變量的,在$_FILES里$x會變成數字。這樣程序就會知道得處理哪個文件了。

  當我們使用copy函數時,才真正的開始把上傳的文件復制到指定目前內。最后還加上了一段簡單的代碼來判斷復制是否成功,并把結果輸出到屏幕上。

結束語

  我肯定這個小小的腳本會使你一次上傳多個文件的工作變得更方便。你可以根據下列的提示,在這個腳本內加入相關的代碼來完善它。

把文件名保存在MySQL數據庫中 
獲取文件的大小并保存到數據庫中 
創建一個臨時文件保存上傳失敗的文件的文件名,并在程序執行完以后再試嘗試 
添加批量刪除文件的功能

php技術上傳多個文件的PHP腳本,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 最近免费中文字幕完整版HD | 欧美九十老太另类 | 久久黄色网址 | 亚洲人成网77777色在线播放 | 嫩草影院精品视频在线观看 | 国产精品久久自在自2021 | 激情床戏视频片段有叫声 | 九九精品视频一区二区三区 | 美女被C污黄网站免费观看 美女白虎穴 | 亚州三级久久电影 | 看了n遍舍不得删的黄文 | 68日本xxxxxxxx79 | 调教美丽的白丝袜麻麻视频 | 亚洲AV国产国产久青草 | 亚洲伊人色综合久久天天伊人 | 女教师二十三歳 | 扒开黑女人p大荫蒂老女人 扒开粉嫩的小缝末成年小美女 | 欧美日韩888在线观看 | 成人区在线观看免费视频 | 亚洲呦女专区 | 奇米精品一区二区三区在线观看 | 久久99综合国产精品亚洲首页 | 边摸边吃奶边做激情叫床视 | 7m凹凸国产刺激在线视频 | 黑人强伦姧人妻日韩那庞大的 | 嫩草AV久久伊人妇女 | 久久午夜宫电影网 | 国产香蕉视频在线观看 | 全肉高H短篇合集 | 国产欧美日韩精品a在线观看高清 | qvod电影在线观看 | 99久久99久久久99精品齐 | 免费三级现频在线观看 | 欧美高清 videos sexo | 日韩欧美国产免费看清风阁 | 国产产一区二区三区久久毛片国语 | 亚洲娇小性色xxxx | 自拍区偷拍亚洲视频 | 伊人伊人伊人 | av亚洲色天堂2017 | 亚洲中文字幕无码一久久区 |