我想使用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'存在...
答案 0 :(得分:1)
您可以使用$result = @getimagesize($file)
来抑制该错误。
因此,当$result
为空时,表示发生了错误。
答案 1 :(得分:0)
此错误有两个可能的原因:URL路径不完整/不正确,或者图片文件已损坏且无法打开。例如,如果映像未完全/正确地加载到服务器上,则文件可能已损坏。