标题PHP批量上传文件或图片的代码
-
批量上传文件或图片,可以动态增加文件框
-
如果想一次同时选择多个文件并有 预览效果要用浏览器插件
-
上面PHP代码保存为一个文件或控制器multi_upload_file.php,HTMP代码保存为multi_upload_page.php或view中
//exit( P O S T [ ′ c o n t ′ ] ) ; / / s e s s i o n s t a r t ( ) ; i f ( _POST['cont']);// session_start(); if ( POST[′cont′]);//sessionstart();if(_GET[‘up’] == ‘1’) {
//防止重复提交
if ($_SESSION[‘file’] == $_GET[‘irand’]) {
c o n t = i n t v a l ( _cont = intval( cont=intval(_POST[‘cont’]); //将file框总数接收并转换成整型
$_size = 20000000; //设置限制文件大小 20m
d i r = ′ d a t a / ′ ; / / 文 件 保 存 目 录 f u n c t i o n s i z e ( _dir = 'data/'; //文件保存目录 function size( dir=′data/′;//文件保存目录functionsize(_size) {
//判断文件大小是否大于1024bit 如果大于,则将大小取值为KB,以此类推
if (KaTeX parse error: Expected '}', got 'EOF' at end of input: … return round(_size / 1024 / 1024, 2) . ’ MB’;
} else if ($_size > 1024) {
$_size = s i z e / 1024 ; r e t u r n c e i l ( _size / 1024; return ceil( size/1024;returnceil(_size) . ‘KB’;
} else {
return $_size . ’ bit’;
}
}
//echo ‘1’;
//设置上传图片的类型,设置图片上传大小
u p f i l e s = a r r a y ( ′ i m a g e / j p e g ′ , ′ i m a g e / p j p e g ′ , ′ i m a g e / p n g ′ , ′ i m a g e / x − p n g ′ , ′ i m a g e / g i f ′ , ′ i m a g e / j p g ′ ) ; / / 利 用 f o r 循 环 上 传 文 件 f o r ( _upfiles = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'image/jpg' ); //利用for循环上传文件 for ( upfiles=array(′image/jpeg′,′image/pjpeg′,′image/png′,′image/x−png′,′image/gif′,′image/jpg′);//利用for循环上传文件for(_i = 0; $_i < $_cont; KaTeX parse error: Expected '}', got 'EOF' at end of input: … if (is_array(_upfiles)) {
if (!in_array( F I L E S [ ′ u s e r f i l e ′ ] [ ′ t y p e ′ ] [ _FILES['userfile']['type'][ 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; } echo '3'; } //获取文件扩展名 if (!is_dir($_dir)) { mkdir($_dir, 0777); } //生成随笔数 $_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 '文件上传成功<br />'; echo '文件路径:' . $_name . '<br />'; echo '文件大小:' . size(filesize($_name)); echo '<br /><a href="pupload.php">返回继续上传</a>'; } } else { exit('上传的临时文件不存在,无法将文件移动到指定文件夹'); } } //销毁session变量,有几种方法 //第一种,销毁所有session变量:session_destroy(); //第二种:销毁单个如:$_SESSION['file']='' session_destroy(); exit;
} else {
exit(‘您已经提交过了,不能重复提交
返回’);
}
}
?>
页面代码:
<?php session_start(); ?>$("#add").click(function(){ //每点击一次增加一个文件输入框
KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲fileBox").appen…(‘input[type=file]’).length+"’/>");
});
});
//val是针对文本框的
//html是针对html标签的