本篇文章将继承为人人引见怎样运用HTML5中的
multiple属性来完成PHP多文件上传以及信息剖析的细致要领。
那末我们在之前的文章【PHP完成多个文件上传的简朴要领有哪些?】中,已为人人简朴引见了一些php完成多文件上传的简朴要领,须要的朋侪能够参考进修。
下面我们再经由过程细致的代码示例,为人人细致引见php运用multiple属性来完成多文件上传及其信息剖析的完全要领。
起首HTML form表单代码以下:
Title挑选文件举行上传:
我们挑选上传多张图片,再经由过程浏览器接见,效果以下:
再将文件上传到getFile.php这个文件中,PHP代码示例以下:
var_dump($_FILES);
此时经由过程浏览器接见效果以下:
此时能够看到我们猎取到了上图中的三维数组。
那末我们想要对上传来的多个文件举行信息剖析,就须要先对上传信息举行组装。
那末完全的getFile.php代码以下:
/**
* 组装多文件上传信息
*/
$files = [];
function getFile()
{
$i = 0;
foreach ($_FILES as $file) {
if (is_string($file['name'])) {
$files['$i'] = $file;
$i++;
} elseif (is_array($file['name'])) {
foreach ($file['name'] as $k => $v) {
$files[$i]['name'] = $file['name'][$k];
$files[$i]['type'] = $file['type'][$k];
$files[$i]['tmp_name'] = $file['tmp_name'][$k];
$files[$i]['error'] = $file['error'][$k];
$files[$i]['size'] = $file['size'][$k];
$i++;
}
}
}
return $files;
}
/**
* 文件上传
* @param $fileInfo
* @param string $upload
* @param array $imagesExt
* @return string
*/
function upload_file($fileInfo, $upload = "./upload", $imagesExt = ['gif', 'png', 'jpg'])
{
$res = [];
if ($fileInfo['error'] === 0) {
$ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION));
if (!in_array($ext, $imagesExt)) {
$res['mes'] = "文件不法范例";
}
if (!is_dir($upload)) {
mkdir($upload, 0777, true);
}
if ($res) {
return $res;
}
$fileName = md5(uniqid(microtime(true), true)) . "." . $ext;
$destName = $upload . "/" . $fileName;
if (!move_uploaded_file($fileInfo['tmp_name'], $destName)) {
$res['mes'] = "文件上传失利!";
}
$res['mes'] = $fileInfo['name'] . "文件上传胜利!";
$res['dest'] = $destName;
return $res;
} else {
switch ($fileInfo['error']) {
case 1:
$res['mes'] = '上传的文件超过了 php.ini 中 upload_max_filesize 选项限定的值';
break;
case 2:
$res['mes'] = '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';
break;
case 3:
$res['mes'] = '文件只要部份被上传';
break;
case 4:
$res['mes'] = '没有文件被上传';
break;
case 6:
$res['mes'] = '找不到临时文件夹';
break;
case 7:
$res['mes'] = '文件写入失利';
break;
}
return $res;
}
}
$files = getFile();
foreach ($files as $fileInfo) {
$res = upload_file($fileInfo);
echo $res['mes'];
var_dump($res['dest']);
}
在上述代码中,我们起首经由过程foreach轮回推断语句对上传来的多维数组信息举行推断重组,然后再建立upload_file要领对多个文件的上传信息举行剖析。
这里的upload_file要领我们在【PHP文件上传要领详解及其信息剖析】这篇文章中已细致引见过了,人人能够挑选参考。以上就是关于PHP完成多文件上传及其信息剖析的细致要领。
想要相识更多的PHP相干学问,能够关注Ki4网的PHP视频教程!
以上就是php怎样运用multiple属性完成多文件上传及信息剖析?(图文+视频)的细致内容,更多请关注ki4网别的相干文章!
收藏 | 0