php 批量上传图片代码,PHP图片、文件批量上传代码

不管是文件还是图片批量上传我们第一个是在html中做name=userfile[]这种数组变量,在php接受中我们做for ($_i=0; $_i

例子

 代码如下复制代码

session_start();

?>

PHP文件批量上传

* {margin:0; padding:0; list-style:none;}

.content {width:400px; height:auto; margin:0 auto; margin-top:60px; padding-bottom:30px; background:#ffd3b6; border:dashed 1px #f90}

.content h1 { width:400px; height: 30px; line-height:30px; text-align:center; font-family:"微软雅黑"; font-size:14px; color:#000}

.content .error {width:300px; height:auto; line-height:30px; text-align:center; margin:0 auto; color:#f00}

.content .con {width:340px; height:auto; margin:0 auto; font-size:12px;}

.content #file { width:280px; height:20px; border:solid 1px #ccc; background:#fff; margin:10px 0px 6px 0; font-size:12px;}

.content #send { width:60px; height:22px; border:solid 1px #ccc; background:#fff; font-size:12px; margin-top:10px;}

$(document).ready(function() {

$('#cont').val($('.file #file').size());

$('#send').eq(0).click(function() {

var filesize=$('.file #file').size();

$('.file').append("");

$('#cont').val(filesize 1);

});

});

PHP文件批量上传

if ($_GET['up']==up) {

//防止重复提交

if ($_SESSION['file']==$_GET['irand']) {

$_cont=intval($_POST['cont']);   //将file框总数接收并转换成整型

$_size=20000;                    //设置限制文件大小

$_dir='pdir/';                   //文件保存目录

function size($_size) {

//判断文件大小是否大于1024bit 如果大于,则将大小取值为KB,以此类推

if ($_size>1024*1024) {

return round($_size/1024/1024,2).' MB';

}else if ($_size>1024) {

$_size=$_size/1024;

return ceil($_size).'KB';

}else {

return $_size.' bit';

}

}

//设置上传图片的类型,设置图片上传大小

$_upfiles = array('image/jpeg','image/pjpeg','image/png','image/x-png','image/gif');

//利用for循环上传文件

for ($_i=0; $_i

if (is_array($_upfiles)) {

if (!in_array($_FILES['userfile']['type'][$_i],$_upfiles)) {

exit('请上传格式为:jpg,png,gif的文件返回');

}

}

//判断文件大小

if ($_FILES['userfile']['size'][$_i]>$_size) {

exit('上传文件不能超过:'.size($_size));

}

//检测文件是否已经上传

if ($_FILES['userfile']['error'][$_i]>0) {

switch ($_FILES['userfile']['error'][1]) {

case 1: echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';

break;

case 2: echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';

break;

case 3: echo '文件只有部分被上传';

break;

case 4: echo '没有文件被上传';

break;

case 6: echo '找不到临时文件夹';

break;

case 7: echo '文件写入失败';

break;

}

exit;

}

//获取文件扩展名

if (!is_dir($_dir)) {

mkdir($_dir,0700);

}

//生成随笔数

$_rand=mt_rand(0,100000);

//获取文件扩展名

$_n=explode('.',$_FILES['userfile']['name'][$_i]);  //将文件名分割

$_file_len=count($_n);         //返回数组长度

//确保获取的扩展名是最后一个.后面的

$_name=$_dir.time().'_'.$_rand.'.'.$_n[$_file_len-1];

//移动文件到指定的目录

if (is_uploaded_file($_FILES['userfile']['tmp_name'][$_i])) {

if (!@move_uploaded_file($_FILES['userfile']['tmp_name'][$_i],$_name)) {

exit('文件移动失败');

}else {

echo '文件上传成功
';

echo '文件路径:'.$_name.'
';

echo '文件大小:'.size(filesize($_name));

echo '返回继续上传';

}

}else {

exit('上传的临时文件不存在,无法将文件移动到指定文件夹');

}

}

//销毁session变量,有几种方法

//第一种,销毁所有session变量:session_destroy();

//第二种:销毁单个如:$_SESSION['file']=''

session_destroy();

exit;

}else {

exit('您已经提交过了,不能重复提交返回');

}

}

?>

核心原理分析

在多文件上传中我们前台最重要的是

 代码如下复制代码

这几行代码有细节的朋友会发现name="userfile[]"了,这个是以数组存储了,这样我们如果使用js也可以这样增加就可以了,那么在php是如何获取的呢

在多文件上传中php处理是一个关键

 代码如下复制代码

for ($_i=0; $_i

if (is_uploaded_file($_FILES['userfile']['tmp_name'][$_i])) {

if (!@move_uploaded_file($_FILES['userfile']['tmp_name'][$_i],$_name)) {

exit('文件移动失败');

}else {

echo '文件上传成功
';

echo '文件路径:'.$_name.'
';

echo '文件大小:'.size(filesize($_name));

echo '返回继续上传';

}

}

这里显示很简单我们会看到有一个for,for就是遍历数组,遍历userfile[]数组,然后再由$_FILES['userfile']['tmp_name'][$_i]来获取不同文件图片再进行上传即可,注意[$_i]就是你的多文件上传项了,只是保存在了数组中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值