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

上傳多個(gè)文件的PHP腳本

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

導(dǎo)言

  作為一個(gè)php的程序員,我曾遇到過(guò)這么一個(gè)客戶,他需要一個(gè)可以同時(shí)上傳多個(gè)文件的表單。因此,一天夜里我就用了一個(gè)小時(shí)的時(shí)間,找到了最好最簡(jiǎn)單的方法來(lái)完成這個(gè)要求。在這篇教程里,“for”這個(gè)循環(huán)語(yǔ)句,將會(huì)成為核心代碼。

腳本1:讓用戶設(shè)定需要上傳的文件數(shù)目

uploadForm1.php

<html>
<head>
<title>文件上傳</title>
</head>
<body>
<form name="form1" method="post" action="uploadForm2.php">
  <p>請(qǐng)輸入你要同時(shí)上傳的文件的數(shù)目,最大值是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代碼非常簡(jiǎn)單。在這段代碼里,我把uploadNeed這個(gè)組件的maxlength屬性設(shè)為1,那么用戶所能輸入的最大值就是9了。當(dāng)然,你可以根據(jù)需要自行修改這部份。

腳本2:創(chuàng)建動(dòng)態(tài)表單

  好了,做好下面的這個(gè)頁(yè)面以后,我們就完成全部工作的一半了。我們用for循環(huán)語(yǔ)句來(lái)完成這個(gè)任務(wù)。

uploadForm2.php

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

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

  作這些工作的目的是為了把$x這個(gè)變量的值,加在“name”屬性的值“uploadFile”的后面。這樣每個(gè)“name”屬性的值“uploadFile”的后面都會(huì)有一個(gè)不同的數(shù)字來(lái)區(qū)別第一個(gè)文件。

腳本3:處理上傳文件

現(xiàn)在就來(lái)完成上傳文件的最后一步

processFiles.php

<?php
$uploadNeed = $_POST['uploadNeed'];
// 開始循環(huán)
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);
// 檢查是否復(fù)制成功
if($copy){
echo "$file_name 上傳成功<br />";
}else{
echo "$file_name 上傳失敗<br />";
}
} // 結(jié)束循環(huán)
?>

  在這個(gè)腳本里,我們首先要從uploadForm2.php中獲取$uploadNeed這個(gè)變量。和前頁(yè)那個(gè)頁(yè)面一樣,我們用“for”語(yǔ)句來(lái)還創(chuàng)建循環(huán)。不同的時(shí),我們需要在循環(huán)內(nèi)使用預(yù)定義全局變量$_FILES,我把它傳遞給了$file_name這個(gè)變量。

  下一步,我們調(diào)用了stripslashes和str_replace兩個(gè)函數(shù)來(lái)處理。由于文件名內(nèi)可能包含一些特殊字符,所以我們使用stripslashes函數(shù)來(lái)防止上傳時(shí)出現(xiàn)解釋錯(cuò)誤。

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

  當(dāng)我們使用copy函數(shù)時(shí),才真正的開始把上傳的文件復(fù)制到指定目前內(nèi)。最后還加上了一段簡(jiǎn)單的代碼來(lái)判斷復(fù)制是否成功,并把結(jié)果輸出到屏幕上。

結(jié)束語(yǔ)

  我肯定這個(gè)小小的腳本會(huì)使你一次上傳多個(gè)文件的工作變得更方便。你可以根據(jù)下列的提示,在這個(gè)腳本內(nèi)加入相關(guān)的代碼來(lái)完善它。

把文件名保存在MySQL數(shù)據(jù)庫(kù)中 
獲取文件的大小并保存到數(shù)據(jù)庫(kù)中 
創(chuàng)建一個(gè)臨時(shí)文件保存上傳失敗的文件的文件名,并在程序執(zhí)行完以后再試嘗試 
添加批量刪除文件的功能

php技術(shù)上傳多個(gè)文件的PHP腳本,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 免费无码又爽又黄又刺激网站 | 最近中文字幕MV免费高清视频8 | 伦理片在线线看手机版 | 亚洲精品视频在线免费 | 丝袜情趣在线资源二区 | 日本边添边摸边做边爱边 | 亚洲午夜一区二区电影院 | 野花视频在线观看免费 | 国产精品久久久久久久人人看 | 色欲天天天综合网免费 | 美女脱18以下禁止看免费 | 日本高清不卡一区久久精品 | 国产精品免费一区二区区 | 国产精品美女久久久网站动漫 | 肉肉的各种姿势高H细文 | 色婷婷亚洲精品天天综合影院 | 亚洲高清有码中文字 | 久久久久久久久久久福利观看 | 蜜芽资源高清在线观看 | 深夜释放自己污在线看 | 久草在线一免费新视频 | 小黄文污到你湿 | 国产GV天堂亚洲国产GV刚刚碰 | 久久伊人青青 | 欧美午夜免费观看福利片 | 最近的中文字幕免费完整 | RUNAWAY韩国动漫免费网 | 国产传媒18精品免费观看 | 色橹橹欧美在线观看视频高 | 天美麻豆成人AV精品 | 99精品国产在热久久 | 第一次破女视频出血视频 | 中文字幕无码亚洲字幕成A人蜜桃 | 黄色小说在线 | 99re8在线视频精品 | 国产99久久久国产精品成人 | 国产AV一区二区三区传媒 | 欧美午夜特黄AAAAAA片 | 精品一成人岛国片在线观看 | 男女作爱在线播放免费网页版观看 | 亚洲精品午夜久久久伊人 |