Home  >  Article  >  Backend Development  >  PHP image and file batch upload code_PHP tutorial

PHP image and file batch upload code_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:19:401315browse

PHP image and file batch upload code

Whether it is file or image batch upload, the first thing we do is to make an array variable like name=userfile[] in html, in php During acceptance, we do for ($_i=0; $_i<$_cont; $_i++) traversal so that we can upload files in batches. Let me look at an example below

Example

 代码如下  

session_start();
?>




PHP文件批量上传


<script><br> $(document).ready(function() {<br> $('#cont').val($('.file #file').size());<br> $('#send').eq(0).click(function() {<br> var filesize=$('.file #file').size();<br> $('.file').append("<input type='file' name='userfile[]' id='file'/>");<br> $('#cont').val(filesize+1);<br> });<br> });<br> </script>



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<$_cont; $_i++) {
if (is_array($_upfiles)) {
if (!in_array($_FILES['userfile']['type'][$_i],$_upfiles)) {
exit('Please upload files in the format: jpg, png, gif
Return');
}
}
//Judge file size
if ($_FILES['userfile']['size'][$_i]>$_size) {
exit('Uploaded files cannot exceed:'.size($_size));
}
//Check whether the file has been uploaded
if ($_FILES['userfile']['error'][$_i]>0) {
switch ($_FILES['userfile']['error'][1]) {
case 1: echo 'The uploaded file exceeds the limit of the upload_max_filesize option in php.ini';
break;
case 2: echo 'The size of the uploaded file exceeds the value specified by the MAX_FILE_SIZE option in the HTML form';
break;
case 3: echo 'Only part of the file was uploaded';
break;
case 4: echo 'No files uploaded';
break;
case 6: echo 'Temp folder not found';
break;
case 7: echo 'File writing failed';
break;
}
exit;
}
//Get file extension
if (!is_dir($_dir)) {
mkdir($_dir,0700);
}
//Generate number of essays
$_rand=mt_rand(0,100000);
//Get file extension
$_n=explode('.',$_FILES['userfile']['name'][$_i]); //Split the file name
$_file_len=count($_n); //Return the array length
//Make sure the extension obtained is the last one. The following
$_name=$_dir.time().'_'.$_rand.'.'.$_n[$_file_len-1];
//Move the file to the specified directory
if (is_uploaded_file($_FILES['userfile']['tmp_name'][$_i])) {
if (!@move_uploaded_file($_FILES['userfile']['tmp_name'][$_i],$_name)) {
exit('File move failed');
}else {
echo 'File uploaded successfully
';
echo 'File path:'.$_name.'
';
echo 'File size:'.size(filesize($_name));
echo '
Return to continue uploading';
}
}else {
exit('The uploaded temporary file does not exist and the file cannot be moved to the specified folder');
}
}
//Destroy session variables, there are several methods
//The first one, destroy all session variables: session_destroy();
//Second type: Destroy a single item such as: $_SESSION['file']=''
session_destroy();
exit;

}else {
exit('You have already submitted and cannot submit again
Return');
}
}
?>



















  核心原理分析

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

 代码如下  




 代码如下  




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

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

 代码如下  

for ($_i=0; $_i<$_cont; $_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 ($_i=0; $_i<$_cont; $_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]就是你的多文件上传项了,只是保存在了数组中。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/873234.htmlTechArticlePHP图片、文件批量上传代码 不管是文件还是图片批量上传我们第一个是在html中做name=userfile[]这种数组变量,在php接受中我们做for ($_i=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