Home >Backend Development >PHP Tutorial >PHP实现多文件上传

PHP实现多文件上传

WBOY
WBOYOriginal
2016-06-23 14:07:54959browse

求够一个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]提交数据时失败,请稍后再试,或与技术员联系!");

//}
}
}




nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



jQuery动态添加input type=file文件上传域
<script></script> 

 
 
 
增加图片 
 
 
删除 
 
 
 
 
<script> <br /> $(document).ready(function(){ <br /> bindListener(); <br /> }); <br /> // 用来绑定事件(使用unbind避免重复绑定) <br /> function bindListener(){ <br /> $("a[name=rmlink]").unbind().click(function(){ <br /> $(this).parent().remove(); <br /> }) <br /> } <br /> function addimg(){ <br /> $("#mdiv").append('<div class="iptdiv"><input type="file" name="img[]" class="ipt" /><a href="#" name="rmlink"> X '); <br /> <br /> // 为新元素节点添加事件侦听器 <br /> <br /> bindListener(); <br /> } <br /> </script>


for($i=0; $i   //这部分是你的恕我不一一抄录,不过加了点东西
  $newFileName=str_replace(".","_".time().".",$_FILES["file"]["name"] [$i]);
  $path="upload/" . $newFileName;
  move_uploaded_file($_FILES["file"]["tmp_name"] [$i],$path);
}

不过 time() 似乎不够了,要 microtime(1) 才基本够

试试uploadify
稍作修改就ok了。

https://github.com/valums/file-uploader
推荐

for($i=0; $i   //这部分是你的恕我不一一抄录,不过加了点东西
  $newFileName=str_replace(".","_".time().".",$_FILES["file"]["name"] [$i]);
  $path="upload/" . $newFileName;
  move_uploaded_file($_FILES["file"]["tmp_name"] [$i],$path);
}

不过 time() 似乎不够了,要 microtime(1) 才基本够

我就想知道后台怎么接收多文件

示例的代码就是

你的上传控件是 
所以 $_FILES["file"][xxx] 都是数组 (xxx = tmp_name,name,error,type,size)
逐个处理就是了,当然只有 error 等于 0 的才是被成功上传的

示例的代码就是

你的上传控件是 
所以 $_FILES["file"][xxx] 都是数组 (xxx = tmp_name,name,error,type,size)
逐个处理就是了,当然只有 error 等于 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>
选择两个文件后截图
提交后 $_FILES 数组
Array
(
    [file] => Array
        (
            [name] => Array
                (
                    [0] => i.jpg
                    [1] => Ico.zip
                    [2] => 
                )

            [type] => Array
                (
                    [0] => image/pjpeg
                    [1] => application/x-zip-compressed
                    [2] => 
                )

            [tmp_name] => Array
                (
                    [0] => C:\Documents and Settings\Administrator\Local Settings\Temp\php188.tmp
                    [1] => C:\Documents and Settings\Administrator\Local Settings\Temp\php189.tmp
                    [2] => 
                )

            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 4
                )

            [size] => Array
                (
                    [0] => 7198
                    [1] => 121062
                    [2] => 0
                )

        )

)

自己去看吧

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:怎么写正则表达式啊Next article:求正则表达式含义