如何修复“ getimagesize():读取错误!”在PHP

时间:2019-01-09 16:24:01

标签: php ajax filereader getimagesize

我想使用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():读取错误!”

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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