1. // 指定上传的文件参数key
    2. $file_key = 'file';
    3. // 允许上传的图片格式
    4. $allowedExts = array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp');
    5. $allowImgTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg', 'image/gif', 'image/x-png', 'image/png', 'image/bmp', 'image/webp');
    6. $file_suffix = end(explode('.', $_FILES[$file_key]['name'])); // 文件格式后缀
    7. // 图片大小限制 5M
    8. if ($_FILES[$file_key]['size'] > 1024 * 1024 * 5) {
    9. echo json_encode(array(
    10. 'code' => 1,
    11. 'msg' => '文件大小不能超过5M',
    12. ));
    13. return;
    14. }
    15. // 验证图片格式
    16. if (!in_array($_FILES[$file_key]['type'], $allowImgTypes) || !in_array($file_suffix, $allowedExts)) {
    17. echo json_encode(array(
    18. 'code' => 1,
    19. 'msg' => '不支持的文件格式',
    20. ));
    21. return;
    22. }
    23. if ($_FILES[$file_key]['error'] > 0) {
    24. echo json_encode(array(
    25. 'code' => 1,
    26. 'msg' => '文件读取错误:' . $_FILES[$file_key]['error'],
    27. ));
    28. } else {
    29. // 设置上传路径
    30. $path = "./upload/" . date("Ymd");
    31. if (!file_exists($path)) {
    32. mkdir($path, 777, true);
    33. }
    34. $new_filename = time() . '.' . $file_suffix;
    35. move_uploaded_file($_FILES[$file_key]['tmp_name'], $path . '/' . $new_filename);
    36. echo json_encode(array(
    37. 'code' => 0,
    38. 'url' => $path . '/' . $new_filename,
    39. 'info' => $_FILES[$file_key],
    40. ));
    41. }
    42. exit;