Home >Backend Development >PHP Tutorial >Summary of PHP multi-file upload understanding_PHP tutorial

Summary of PHP multi-file upload understanding_PHP tutorial

WBOY
WBOYOriginal
2016-07-20 11:11:40991browse

Add [] after the name in the FILE type of the input tag of the uploaded file HTML. The function is to create an array in the HTML to PHP. For example, the name is pictures, and the multiple file reference name is pictures[]. The example is as follows:

The code is as follows Copy code td>
 代码如下 复制代码











//手册中实例。










//Examples in the manual.

Select the file and click upload
 代码如下 复制代码

print_r($_FILES);
?>

The code is as follows Copy code

print_r($_FILES);
?>

 代码如下 复制代码
Array
(
[pictures] => Array
(
[name] => Array
(
[0] => file1.txt
[1] => file2.txt
[2] => file3.txt
)
[type] => Array
(
[0] => application/octet-stream
[1] => application/octet-stream
[2] => application/octet-stream
)
[tmp_name] => Array
(
[0] => D:EasyPHPtmpphp47.tmp
[1] => D:EasyPHPtmpphp48.tmp
[2] => D:EasyPHPtmpphp49.tmp
)
[error] => Array
(
[0] => 0
[1] => 0
[2] => 0
)
[size] => Array
(
[0] => 94289
[1] => 65536
[2] => 102400
)
)
)
View source file:

Assuming files named /file1.txt?? and /file2.txt are submitted, the value of $_FILES['pictures']['name'][0] will be file1.txt, and $_FILES[ The value of 'pictures']['name'][1] will be file2.txt. Similarly, $_FILES['file2.txt']['size'][0] will contain the size of file file1.txt.

With the above information, it is simple for us to upload multiple files

The code is as follows Copy code

class upload {
public $up_ext=array(), $up_max=5210, $up_dir;
private $up_name, $up_rename=true, $up_num=0, $up_files=array(), $up_ret=array();

function __construct($name, $ext=array(), $rename=true) {
if (!empty($name)) {
$this->up_name = $name;
!empty($ext) && $this->up_ext = $ext;
$this->up_rename = $rename;
$this->up_dir = website_dirroot.
$globals ['cfg_upload_path'];
$this->initupload();
} else {
exit('The upload file domain name is empty, initialization failed!');
}
}

private function initupload() {
if (is_array($_files[$this->up_name])) {
$up_arr = count($_files[$this->up_name ]);
$up_all = count($_files[$this->up_name], 1);
$up_cnt = ($up_all - $up_arr) / $up_arr;
for ($i = 0; $i < $up_cnt; $i ++) {
if ($_files[$this->up_name]['error'][$i] != 4) {
$this- >up_files[] = array(
'tmp_name' => $_files[$this->up_name]['tmp_name'][$i],
'name' => $_files[$ this->up_name]['name'][$i],
'type' => $_files[$this->up_name]['type'][$i],
'size ' => $_files[$this->up_name]['size'][$i],
'error' => $_files[$this->up_name]['error'][$ i]
);
}
}
$this->up_num = count($this->up_files);
} else {
if (isset($_files [$this->up_name])) {
$this->up_files = array(
'tmp_name' => $_files[$this->up_name]['tmp_name'],
'name' => $_files[$this->up_name]['name'],
'type' => $_files[$this->up_name]['type'],
'size' => $_files[$this->up_name]['size'],
'error' => $_files[$this->up_name]['error']
);
$this->up_num = 1;
} else {
exit('The file that needs to be uploaded was not found! ');
}
}

$this->chkupload();
}

private function chkupload() {
if (empty($ this->up_ext)) {
$up_mime = array('image/wbmp', 'image/bmp', 'image/gif', 'image/pjpeg', 'image/x-png');
foreach ($this->up_files as $up_file) {
$up_allw = false;
foreach ($up_mime as $mime) {
if ($up_file['type'] == $ mime) {
$up_allw = true; break;
}
}
!$up_allw && exit('Not allowed to upload files in '.$up_file['type'].' format!' );

if ($up_file['size'] / 1024 > $this->up_max) {
exit('Uploads larger than '.$this->up_max.'k are not allowed ');
}
}
} else {
foreach ($this->up_files as $up_file) {
$up_ext = end(explode('.', $up_file['name']));

$up_allw = false;
foreach ($this->up_ext as $ext) {
if ($up_ext == $ext) {
$up_allw = true; break;
}
}
!$up_allw && exit('Uploading of files in the format of .'.$up_ext.' is not allowed!');

if ($up_file['size'] / 1024 > $this->up_max) {
exit('Files larger than '.$this->up_max.'k are not allowed to be uploaded!');
}
}
}

$this->uploading();
}

private function uploading() {
if (io:: dircreate($this->up_dir)) {
if (chmod($this->up_dir, 0777)) {
if (!empty($this->up_files)) {
foreach ($this->up_files as $up_file) {
if (is_uploaded_file($up_file['tmp_name'])) {
$file_name = $up_file['name'];
if ($this ->up_rename) {
$file_ext = end(explode('.', $file_name));
$file_rnd = substr(md5(uniqid()), mt_rand(0, 26), 6);
$file_name = date('ymdhis').'_'.$file_rnd.'.'.$file_ext;
}
$file_name = $this->up_dir.'/'.$file_name ;

if (move_uploaded_file($up_file['tmp_name'], $file_name)) {
$this->up_ret[] = str_replace(website_dirroot, '', $file_name);
} else {
exit('File upload failed! ');
}
}
}
}
} else {
exit('Write permission is not enabled!');
}
} else {
exit('Failed to create upload directory!');
}
}

public function getupload() {
return empty($this->up_ret) ? false : $this->up_ret;
}

function __destruct() {}
}
?>

Above we will see a for ($i = 0; $i < $up_cnt; $i ++) , This is a traversal of the examples we talked about above.


www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/444622.htmlTechArticleAdd [] after the name in the FILE type of the input tag of the uploaded file. The function is to upload the file to PHP in the HTML. Create an array, for example, the name is pictures, and the multiple file reference name is pictures[]. The example is as follows...
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