PHP 手机摄像头上传不工作

PHP Mobile Camera Upload Not Working

我这几天一直在研究这个问题,从其他人那里查看以前的 questions/answers,但我还没有找到答案。这背后的想法是让手机相机上传照片,压缩,存储并在数据库中记录文件名。

如果我在我的 PC 上使用此代码,它可以正常工作,没问题。如果我使用我的 phone 相机,我要么页面不工作 - 错误 500,要么表格显示它已上传,我检查,数据库有名称,但在服务器上,'File Not Found'。我也尝试从我的 phone 上传一张保存的图片,结果也是如此。

下面是 PHP 脚本:

$db = new PDO('mysql:host=host;dbname=db', 'user', 'pass');

function compress($source, $destination, $quality) {

    $info = getimagesize($source);

    if($info['mime'] == 'image/jpeg') {
        $image = imagecreatefromjpeg($source);
    } else if($info['mime'] == 'image/gif') {
        $image = imagecreatefromgif($source);
    } else if($info['mime'] == 'image/png') {
        $image = imagecreatefrompng($source);
    }

    imagejpeg($image, $destination, $quality);

    return $destination;

}

if(isset($_POST['submit'])) {

    $target = $_SERVER["DOCUMENT_ROOT"].'/images/uploads/'
    $target = $target . basename($_FILES['file']['name']);

    $photo_name = ($_FILES['file']['name']);
    $imageFileType = pathinfo($target, PATHINFO_EXTENSION);
    $file = $photo_name;

    $query = "INSERT INTO jrtwall_images (imgurl) VALUES ('$file')";
    $result = $db->query($query);

    if($result && compress($_FILES['file']['tmp_name'], $target, 50)) {

        header("Location: /?pid=1&success=1");
        exit();

    } else {

        header("Location: /?pid=1&error=1");
        exit();

    }

}

这是我的 HTML:

<form action="core/engines/upload-v2.eng.php" method="post" autocomplete="off" enctype="multipart/form-data">

    <input type="file" name="file" />
    <input type="submit" name="submit" value="Upload &amp; Send" />

</form>

print_r($_FILES['file']); 显示:

Array([name] => 15316729868972697354228305840469.jpg [type] => image/jpeg [tmp_name] => /tmp/phpAvNZZF [error] => 0 [size] => 4649129)

任何帮助都将不胜感激。我是 运行 PHP 5.6.

我尝试过的事情:

愚蠢的我...我已修复它。当我说我更改 Post 和上传大小时,我并没有考虑增加 memory_limit...

答案是将 memory_limit 更改为 128M。

我通过更改服务器配置解决了这个问题,请相对更改。

post_max_size = 20M
memory_limit = 2048M