Content-type常见类型; PHP多文件上传
Content-type常见的值有哪些?
Content-type 常见的值
- application/x-www-form-urlencoded,post数据会以key=value (会被url编码),form enctype 默认值是application/x-www-form-urlencoded
- multipart/form-data 如果表单中含有文件 或 图片等 不能被编码成文本的元素,浏览器会使用multipart/form-data 向服务器传输数据,提高数据的传输效果,和用户的使用体验,减少对服务器的请求次数 。
- application/json JSON.stringify, PHP json_decode() $_POST() file_get_contents(‘php://input’)获取原始输入流PHP文件上传,封装多文件上传函数?调取upload方法处理文本:
$res = upload($_FILES);
将同一文件的属性集中到同一数组格式如:
[name] => 3.jpg
[type] => image/jpeg
[tmp_name] => C:\phpEnv\temp\php\phpE22F.tmp
[error] => 0
[size] => 1924501
upload方法:
function upload(): array
{
$i = 0;
foreach ($_FILES as $k => $file) {
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;
}
调取uploadFile方法上传文本:
uploadFile($res), true));
uploadFile方法:
总结:
function uploadFile(array $files, $uploadPath='uploads/storage'):array{
if(!file_exists($uploadPath)){
mkdir($uploadPath,0777,true);
}
foreach($files as $file){
if($file['error']==0){ if(strstr($file['type'],'/',true)!=='image'){
$tips = $file['name'].'文件类型错误';
continue;
}else{
$targetName = $uploadPath.'/'.date('YmdHis').md5($file['name'].time()).strstr($file['name'],'.');
if(!move_uploaded_file($file['tmp_name'],$targetName)){
$tips = $file['name'].'文件移动失败';
continue;
}else{
$img[]=$targetName;
}
}
}
}
if(!empty($tips)){
$res['error'] = $tips;
}
$res['fileRealPath']=$img;
return $res;
}
文件上传挺常用的,这两天比较忙补听的录播,跟着敲一遍基本理解了。
【本文来自:美国大带宽服务器 http://www.558idc.com/mg.html提供,感恩】