我正在尝试将图像上传到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
答案 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_filesize
和post_max_size
才能使该图像的上载正常工作。
还请注意,在尝试处理文件之前,始终检查上传是否成功($_FILES['profileimg']['error'] = 0
)是一个好习惯。