【问题标题】:How to fix "getimagesize(): Read error!" in PHP如何修复“getimagesize():读取错误!”在 PHP 中
【发布时间】:2019-01-09 16:24:00
【问题描述】:

我想使用 ajax 和 php 将图像上传到服务器。

在客户端我有以下代码:

var reader = new FileReader();
reader.readAsDataURL(file, 'UTF-8');
reader.onload = function (event) {
    var result = event.target.result;
    $.ajax({    
    type: "POST",
    url: "url", 
    data: { 
       data: result, 
       name: file.name,
       mimeType: file.type
    }
   });
 };

在服务器端,我的代码如下所示:

 $path = 'somehow/'
 $fp = fopen( $path . $_POST['name'], 'w');
    $data = explode( ',', $_POST['data'] );
    fwrite($fp, base64_decode( $data[ 1 ] ));
    fclose($fp);
    chmod($path . $_POST['name'], 7777);

    list($width, $height) = getimagesize($path . $_POST['name']);

现在“getimagesize”方法总是遇到错误“getimagesize(): Read error!”

有人知道,为什么会这样吗?当我查看服务器上的文件系统时,文件'FILENAME.JPG'存在......

【问题讨论】:

    标签: php ajax filereader getimagesize


    【解决方案1】:

    此错误有两个可能的原因:url 路径不完整/不正确或图片文件已损坏且无法打开。例如,如果图像未完全/正确加载到服务器上,则文件可能已损坏。

    【讨论】:

    • 我不确定你的意思。我可以在服务器上找到图片,并且可以使用 filezilla 之类的 ftp 工具下载并再次打开它。
    • 我的意思是这个错误有两种情况。如果您说可以打开图片,则说明您的网址不正确。尝试使用绝对网址也许会解决问题。
    • 非常感谢。我在使用变量时犯了一个愚蠢的错误 ($filename != $fileName)
    【解决方案2】:

    您可以使用$result = @getimagesize($file) 来抑制错误。 所以,当$result为空时,表示发生了错误。

    【讨论】:

      猜你喜欢
      • 2013-07-10
      • 1970-01-01
      • 2014-06-05
      • 2019-12-27
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      相关资源
      最近更新 更多