php实现:一次选择多个文件上传

php实现:一次选择多个文件上传,第1张

参考代码如下:

<?php

$max_files=5 //最多上传文件的个数,与 up.htm 中的 input file 控件的个数相同

$up_ok_files=0//成功上传的文件个数

$up_folder="ups" //保存上传文件的目标文件夹

if(isset($_FILES['myfile'])){

//由于 $_FILES['myfile'] 是个数组,所以需要使用循环遍历

for($i=0$i<$max_files$i++){

//如果未出错

if($_FILES['myfile']['error'][$i]==0){

if(move_uploaded_file($_FILES['myfile']['tmp_name'][$i],$up_folder."/".$_FILES['myfile']['name'][$i])){

//成功上传后,计数器增 1

$up_ok_files +=1

}

else{

echo "<h4 style='color:red'>在服务器中保存失败</h4>"

}

}

}

echo "<h4>成功上传 ".$up_ok_files. " 个文件</h4>"

}

?>

注意:

如果对 $_FILES['myfile'] 这个数组的结构不清楚,可以在循环之前加入这句代码将其显示出来:

print_r($_FILES['myfile'])

php在文件域元素中使用multiple属性设置多文件上传。根据查询相关公开信息显示,打开php在文件域元素中,使用multiple属性设置多文件上传,创建数据表student,若创建成功,则输出数据表student创建成功,否则输出数据表student创建失败。

现在我们开始使用插件

(1)首先引入文件

<!--css文件-->

<link href="__PUBLIC__/css/fileinput.css" media="all" rel="stylesheet" type="text/css" />

<link href="__PUBLIC__/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">

<!--js文件-->

<script src="__PUBLIC__/js/jQuery.min.js" type="text/JavaScript"></script>

<script src="__PUBLIC__/js/bootstrap.min.js?v=3.3.6"></script>

<script src="__PUBLIC__/js/plugins/fileinput.js" type="text/javascript"></script>

<script src="__PUBLIC__/js/fileinput.min.js" type="text/javascript"></script>

(2)初始化控件

<input id="file" name="file_data[]" type="file" multiple data-preview-file-type="any" data-show-caption="true">

data-preview-file-type="any" :设置之后可以上传多个文件

name="file_data[]" :因为要上传多个文件所以要用数组

(3)js初始化控件

$("#file").fileinput({

uploadUrl: "{:U('Admin/Img/imgupload2')}",// 上传路径

uploadAsync: false,//是否异步传输

maxFileCount: 5//最大文件上传数量

}).on('filebatchpreupload', function(event, data, id, index) {

}).on('filebatchuploadsuccess', function(event, data) {//上传成功从服务器端返回的数据(即保存的文件名称)

for(var i=0i<data.response.lengthi++){

alert(data.response[i].flag)

}

})

(4)thinkphp对应的方法

public function imgupload2(){

$upload = new \Think\Upload()// 实例化上传类

$upload->maxSize = 3145728 // 设置附件上传大小

$upload->exts = array('jpg', 'gif', 'png', 'jpeg')// 设置附件上传类型

$upload->rootPath = './Public/Uploads/'// 设置附件上传根目录

$upload->savePath = ''// 设置附件上传(子)目录

$info = $upload->upload(array($_FILES['file_data']))// 上传文件

$i=0

if(!$info) {// 上传错误提示错误信息

$a[$i]['flag']="no"

$this->ajaxReturn($a,'JSON')

}else{// 上传成功 获取上传文件信息

foreach($info as $file){

$a[$i]['flag']=$file['savepath'].$file['savename']

$i++

}

}

$this->ajaxReturn($a,'JSON')

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12030478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存