>  기사  >  백엔드 개발  >  PHP가 파일을 업로드할 수 없습니다(777+group:apache+ selinux 비활성화됨)

PHP가 파일을 업로드할 수 없습니다(777+group:apache+ selinux 비활성화됨)

WBOY
WBOY원래의
2016-12-01 00:56:291315검색

언급한 대로 centos7
upload_temp_dir=/tmp(777)
$_SERVER['DOCUMENT_ROOT'] '/adpic'(777)

<code><?php

// 检测文件
if (!isset($_FILES['file']) || !is_uploaded_file($_FILES['file']['tmp_name']))
    exit('错误,没有找到文件' . json_encode(var_dump($_FILES)));

if ($_FILES['file']['error'] > 0)
    exit('错误,文件错误');

if ($_FILES['file']['size'] < 0)
    exit('错误,文件大小不明');

//switch (getimagesize($_FILES['file']['tmp_name'])[2]) {
//    case 1:
//        $ext = 'gif';
//        break;
//    case 2:
//        $ext = 'jpg';
//        break;
//    case 4:
//        $ext = 'jpeg';
//        break;
//    case 3:
//        $ext = 'png';
//        break;
//    default:
//        die('仅允许上传 png gif jpg 格式的图片' . var_dump($_FILES));
//        break;
//}

// 文件路径 文件名

$time = time();
$imgName = $time . mt_rand(10000, 99999);
$savePath =$_SERVER['DOCUMENT_ROOT']. '/adpic';
// 创建文件夹
// 移动文件
if (!move_uploaded_file($_FILES['file']['tmp_name'], $savePath . '/' . $imgName . '.' . $ext))
    exit('错误,文件移动失败'.error_reporting(E_ALL));

// 返回文件地址
exit("/adpic/" . $imgName . '.' . $ext);</code>

첫 번째 질문은 getimagesize($_FILES'file')이 false라는 것입니다. 상황은 어떻습니까?
노멀도 있으면 안되나요?
그러면 오류 메시지는 22527입니다.
문제 설명은 대략 이렇습니다. 추가 정보가 필요하면 즉시 업데이트하겠습니다. 답변 감사합니다.

답글 내용:

언급한 대로 centos7
upload_temp_dir=/tmp(777)
$_SERVER['DOCUMENT_ROOT'] '/adpic'(777)

<code><?php

// 检测文件
if (!isset($_FILES['file']) || !is_uploaded_file($_FILES['file']['tmp_name']))
    exit('错误,没有找到文件' . json_encode(var_dump($_FILES)));

if ($_FILES['file']['error'] > 0)
    exit('错误,文件错误');

if ($_FILES['file']['size'] < 0)
    exit('错误,文件大小不明');

//switch (getimagesize($_FILES['file']['tmp_name'])[2]) {
//    case 1:
//        $ext = 'gif';
//        break;
//    case 2:
//        $ext = 'jpg';
//        break;
//    case 4:
//        $ext = 'jpeg';
//        break;
//    case 3:
//        $ext = 'png';
//        break;
//    default:
//        die('仅允许上传 png gif jpg 格式的图片' . var_dump($_FILES));
//        break;
//}

// 文件路径 文件名

$time = time();
$imgName = $time . mt_rand(10000, 99999);
$savePath =$_SERVER['DOCUMENT_ROOT']. '/adpic';
// 创建文件夹
// 移动文件
if (!move_uploaded_file($_FILES['file']['tmp_name'], $savePath . '/' . $imgName . '.' . $ext))
    exit('错误,文件移动失败'.error_reporting(E_ALL));

// 返回文件地址
exit("/adpic/" . $imgName . '.' . $ext);</code>

첫 번째 질문은 getimagesize($_FILES'file')이 false라는 것입니다. 상황은 어떻습니까?
노멀도 있으면 안되나요?
그러면 오류 메시지는 22527입니다.
문제 설명은 대략 이렇습니다. 추가 정보가 필요하면 즉시 업데이트하겠습니다. 답변 감사합니다.

해결되었습니다. php.ini를 비교해보니 open_basedir 값 때문인 것으로 확인되었습니다. 비워두니 정상으로 돌아왔습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.