当前位置: 首页 > 知识库问答 >
问题:

在某些情况下,我会收到警告:file\u get\u contents():Filename不能为空

凌征
2023-03-14

我正在尝试上传图片到imgur,我可以上传大部分图片,但有些图片我无法上传,我不知道为什么。这给了我警告。

警告:文件\获取\内容():文件名在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 )) 

链接到一些我无法上传的图片:无法上传的图片

共有1个答案

寇宏义
2023-03-14

基于您为失败的上载给出的输出,并通过查看文件上载错误的留档(http://php.net/manual/features.file-upload.errors.php),$_FILES中的值"1"将转换为UPLOAD_ERR_INI_SIZE

从文档:

UPLOAD\u ERR\u INI\u SIZE值:1;上载的文件超出了php.ini中的upload\u max\u filesize指令。

因此,您必须更改php.ini中的配置,并增加upload_max_filesizepost_max_size,以便为该映像上载工作。

还请注意,在尝试处理文件之前,总是检查上载是否成功($_FILES['aloileimg']['error']=0)是一个很好的做法。

 类似资料:
  • 问题内容: 我使用 CMake* (3.4.1)根据 Boost 库构建一个C ++项目。宿主平台是 Linux ,目标是宿主和 交叉构建 Android NDK。 * 我只使用Boost头文件,而我只是下载/提取了boost文件夹(并且我没有目录)。 在我的文件中,我这样声明对Boost的依赖关系: 我将构建配置如下: 这实际上 可以 像我的 本机 版本一样工作。 现在,当我以完全相同的方式(仅

  • 问题内容: 为什么 工作,但是 不是吗 问题答案: 为了理解这一点,让我们考虑一下编译器在两种可能性下每个步骤所做的事情。让我们开始: 编译器将‘4’转换为int。所以变成 然后编译器变成 ch是一个字符,编译器可以将54转换为字符,因为它可以证明转换没有损失。 现在让我们考虑第二个版本: ch在编译时没有已知值。因此,这成为 现在,编译器无法证明此(int)的结果在char范围内可存储。因此它

  • 我正在测试一些东西,遇到了一个奇怪的情况,当我有一个断点时,IntelliJ没有调试我的代码,如图1所示。但是当我移动断点时,工作正常。 代码: 当我在这里有我的调试点时(见图),这不起作用并给出以下错误: 错误: 连接到目标虚拟机,地址:“127.0.0.1:59776”,传输:“socket”OpenJDK 64位服务器虚拟机警告:共享仅支持引导加载程序类,因为已附加引导类路径,与目标虚拟机断

  • 我知道拥有一个空的类通常是一个设计缺陷,但是在我的情况下,它是否是最好的选择,或者对于这个Scnario来说,什么是最好的设计呢? ClassA是一个空的超类这里是我的代码 ClassB是从ClassA派生的

  • 我不明白为什么我收到以下代码的警告: 未选中对<code>isAssignableFrom(类)的调用 当我使用< code>isInstance方法时(根据我的理解,它提供相同的结果),我没有得到警告:

  • 我遇到了一个非常奇怪的问题,java线程正忙着等待。 我有一个线程忙于等待其他线程的静态变量的状态。假设忙碌等待的线程正在等待另一个线程的静态int变量达到某个值 如果我使用上面的代码,线程将被卡在忙等待中,不会跳出while循环,即使确实达到5。 但是,如果我使用其他代码,那么线程确实会跳出忙等待循环。有时,一旦达到5,其他时候会晚一点。但它会发生。对于我的特定示例,我将其用作“无意义的工作”