Content-type常见类型; PHP多文件上传

编辑: admin 分类: 电脑知识 发布时间: 2023-06-14 来源:互联网
Content-type常见的值有哪些?

Content-type 常见的值

  1. application/x-www-form-urlencoded,post数据会以key=value (会被url编码),form enctype 默认值是application/x-www-form-urlencoded
  2. multipart/form-data 如果表单中含有文件 或 图片等 不能被编码成文本的元素,浏览器会使用multipart/form-data 向服务器传输数据,提高数据的传输效果,和用户的使用体验,减少对服务器的请求次数 。
  3. application/json JSON.stringify, PHP json_decode() $_POST() file_get_contents(‘php://input’)获取原始输入流PHP文件上传,封装多文件上传函数?调取upload方法处理文本:
  1. $res = upload($_FILES);

将同一文件的属性集中到同一数组格式如:

  1. [name] => 3.jpg
  2. [type] => image/jpeg
  3. [tmp_name] => C:\phpEnv\temp\php\phpE22F.tmp
  4. [error] => 0
  5. [size] => 1924501

upload方法:

  1. function upload(): array
  2. {
  3. $i = 0;
  4. foreach ($_FILES as $k => $file) {
  5. foreach ($file['name'] as $k => $v) {
  6. $files[$i]['name'] = $file['name'][$k];
  7. $files[$i]['type'] = $file['type'][$k];
  8. $files[$i]['tmp_name'] = $file['tmp_name'][$k];
  9. $files[$i]['error'] = $file['error'][$k];
  10. $files[$i]['size'] = $file['size'][$k];
  11. $i++;
  12. }
  13. }
  14. return $files;
  15. }
  16. 调取uploadFile方法上传文本:
  17. uploadFile($res), true));

uploadFile方法:

  1. function uploadFile(array $files, $uploadPath='uploads/storage'):array{
  2. if(!file_exists($uploadPath)){
  3. mkdir($uploadPath,0777,true);
  4. }
  5. foreach($files as $file){
  6. if($file['error']==0){ if(strstr($file['type'],'/',true)!=='image'){
  7. $tips = $file['name'].'文件类型错误';
  8. continue;
  9. }else{
  10. $targetName = $uploadPath.'/'.date('YmdHis').md5($file['name'].time()).strstr($file['name'],'.');
  11. if(!move_uploaded_file($file['tmp_name'],$targetName)){
  12. $tips = $file['name'].'文件移动失败';
  13. continue;
  14. }else{
  15. $img[]=$targetName;
  16. }
  17. }
  18. }
  19. }
  20. if(!empty($tips)){
  21. $res['error'] = $tips;
  22. }
  23. $res['fileRealPath']=$img;
  24. return $res;
  25. }
总结:

文件上传挺常用的,这两天比较忙补听的录播,跟着敲一遍基本理解了。

【本文来自:美国大带宽服务器 http://www.558idc.com/mg.html提供,感恩】