ホームページ >バックエンド開発 >PHPチュートリアル >PHP は複数のファイルのアップロードを実装します

PHP は複数のファイルのアップロードを実装します

WBOY
WBOYオリジナル
2016-06-23 14:07:54959ブラウズ

求够一个PHP实现多文件上传的例子,直接贴代码,谢谢。


回复讨论(解决方案)

怎么没有人。。。。

百度swfupload,下载个实例研究下吧
多文件上传不是几句代码就说清楚的。

会单文件上传不?会的话多文件是一样的道理。只不过表单控件命名为数组,php处理数组而已。

$_FILES["file"] 怎么接收数组的文件,我用
foreach ($_FILES["file"] as $item)
{
$s=$s.",".$item;
}
只能接收一个文件

你的html代码是什么?

if($_FILES['file']['size'] >0){
if ( $_FILES["file"]["error"] > 0){
$msg= "附件上传错误: " . $_FILES["file"]["error"];
}else{
//if (file_exists("upload/".$_FILES["file"]["name"])){
// echo $msg =$_FILES["file"]["name"]." 附件已经存在! ";
//}else{
  $yc = $_POST['yc'];
  $yt = $_POST['yt'];
  $type = $_POST['type'];
  $newFileName=str_replace(".","_".time().".",$_FILES["file"]["name"]);
  $path="upload/" . $newFileName;
  move_uploaded_file($_FILES["file"]["tmp_name"],$path);
  
  $sql="insert into A004(c02,c03,c04,c05,c06,c07,c08,c09,c10) values ('".$id."','".$newFileName."','".$path."','".$yc[0]."','". $yt[0]."','".$type[0]."','0','".$_SESSION['LOGIN_ID']."','".get_time()."') ";
  $msg=$DB->Update($sql,"[10016]提交数据时失败,请稍后再试,或与技术员联系!");

//}
}
}




b585974ae3b7dba3039af53a9593f9c4
383eb734b02b508089ba2d78eb4c6f68
93f0f5c25f18dab9d176bd4f6de5d30e
ebeda52af7641f7e715679a8472f8c69
b2386ffb911b14667cb8f0f91ea547a7jQuery动态添加input type=file文件上传域6e916e0f7d1e588d4f442bf645aedb2f
015b527027be4c0df2fb9227f7a57f422cacc6d41bbb37262a98f745aa00fbf0 
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d 
7685d8e4e7ea8f56f0e7de7194238a98 
2e1cf0710519d5598b1f0f14c36ba674请选择上传的图片8c1ecd4bb896b2264e0711597d40766c 
02fee17523a55d28bf15a2d5669aa7b6增加图片5db79b134e9f6b82c0b36e0489ee08ed 
2023983abbaab84567c935b536cfc59d 
dfec6d04599c38fbe004e538e549d70b 
7929dc77bc8825e74fcd22c580196e944b09956f50d7e9443408f2210a215bc2删除5db79b134e9f6b82c0b36e0489ee08ed 
16b28748ea4df4d9c2150843fecfba68 
16b28748ea4df4d9c2150843fecfba68 
d4c709e112c8b5e538b8274984f11546 
f5a47148e367a6035fd7a2faa965022e 
ea1aab715d1b735c8b112b6fff119ca8 
$(document).ready(function(){
   bindListener();
});
// 用来绑定事件(使用unbind避免重复绑定)
function bindListener(){
     $("a[name=rmlink]").unbind().click(function(){
         $(this).parent().remove(); 
     })
}
function addimg(){ 
   $("#mdiv").append('aa93eca13ea7fc740ba25b887d213bf8f7567d74db02c88282e7c22df30777384b09956f50d7e9443408f2210a215bc2 X 5db79b134e9f6b82c0b36e0489ee08ed16b28748ea4df4d9c2150843fecfba68');

// 新しい要素ノードのイベント リスナーを追加します
$idd0194974ab8451c8af7cc26a42681fc つまり、$_FILES["file"][xxx] はすべて配列 (xxx = tmp_name,name,error,type,size) です
それらを処理するだけですもちろん 1 つずつ、エラーが 0 に等しい場合のみ正常にアップロードされます

コード例は次のとおりです
アップロード コントロールは dfe6592efb9519ae63fc80182c0da858 です。
$_FILES[" file"][xxx] はすべて配列 (xxx = tmp_name,name,error,type,size) です

もちろん、それらを 1 つずつ処理するだけで、エラーが 0 に等しいものだけが正常にアップロードされます


foreach ($_FILES['file' ] as $item)
{
//echo print_r($item)
}

このように最初のファイルだけを取得するにはどうすればよいですか

テストコード

<?phpprint_r($_FILES);?><form method="POST" enctype="multipart/form-data"> <input type=file name=file[] /><br> <input type=file name=file[] /><br> <input type=file name=file[] /><br> <input type=submit></form>
は 2 つのファイルを選択した後にスクリーンショットを撮ります
送信後 $_FILES 配列
配列
(
[ファイル] => 配列
(
[名前] => 配列

[種類] => 配列。 -zip-Compresded
(settingsadministratorlocal settingpphp189.tmp
)[1] =&gt;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。