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(); <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 { 核心原理分析 在多文件上传中我们前台最重要的是
这几行代码有细节的朋友会发现name="userfile[]"了,这个是以数组存储了,这样我们如果使用js也可以这样增加就可以了,那么在php是如何获取的呢 在多文件上传中php处理是一个关键
这里显示很简单我们会看到有一个for,for就是遍历数组,遍历userfile[]数组,然后再由$_FILES['userfile']['tmp_name'][$_i]来获取不同文件图片再进行上传即可,注意[$_i]就是你的多文件上传项了,只是保存在了数组中。
Previous article:A brief analysis of the use of php input stream php://input, input stream input_PHP tutorial
Next article:laravel administrator a universal backend plug-in (PHP framework extension), laravel plug-in_PHP tutorial
Statement of this Website
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
Latest Articles by Author
Latest Issues
Group MySQL results by ID for looping over
I have a table with flight data in mysql. I'm writing a php code that will group and displ...
From 2024-04-06 17:27:56
0
1
406
Related Topics
More>
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
|