在某些情况下,我会收到警告:file_get_contents():文件名不能为空

时间:2018-06-21 14:12:55

标签: php

我正在尝试将图像上传到imgur,我可以上传大多数图像,但是有些图像我无法上传,我也不知道为什么。它给了我警告。

  

警告:file_get_contents():C:\ wamp64 \ www \ social \ my-account.php中文件名不能为空

如果代码有问题,我如何能够上传相同文件类型的其他图像。

从我观察到的所有上传失败的图片来看,文件大小很大(大约2MB-4MB)。

如果是由于尺寸原因,我该如何解决此问题。

<h1>My account</h1>
<form action="my-account.php" method="post" enctype="multipart/form-data">
    Upload an image...
    <input type="file" name="profileimg">
    <input type="submit" name="uploadprofileimg" value="Upload Image">


</form>
<?php
if(isset($_POST['uploadprofileimg']))
{
    $image = base64_encode(file_get_contents($_FILES["profileimg"]["tmp_name"]));

    $options = array('http'=>array(
                'method'=>"POST",
                'header'=>
                "Content-Type: application/x-www-form-urlencoded\r\n".
                "Authorization: Bearer 82afc16954948508dfcf37e0a899759f34ab26c2\n",
                'content' =>$image
    ));
    $context = stream_context_create($options);
    print_r($_FILES);


    $imgurURL = "https://api.imgur.com/3/image";
    $response = file_get_contents($imgurURL, false, $context);



}

?>

print_r()的输出:

Array ( [profileimg] => Array ( [name] => pexels-photo-374710.jpeg [type] => 
[tmp_name] => [error] => 1 [size] => 0 )) 

链接到一些我无法上传的图像: Images that failed to upload

1 个答案:

答案 0 :(得分:2)

根据您为失败的上传提供的输出,并查看有关文件上传错误(http://php.net/manual/features.file-upload.errors.php的文档),"1"中的值$_FILES['profileimg']['error']转换为UPLOAD_ERR_INI_SIZE

来自文档:

  

UPLOAD_ERR_INI_SIZE值:1 ;上传的文件超出了php.ini中的upload_max_filesize指令。

因此,您必须更改php.ini中的配置,并增加upload_max_filesizepost_max_size才能使该图像的上载正常工作。

还请注意,在尝试处理文件之前,始终检查上传是否成功($_FILES['profileimg']['error'] = 0)是一个好习惯。