有没有办法确保收到的文件是图像PHP?
测试扩展对我来说听起来不太安全,因为您可以上传script并将其扩展名更改为您想要的任何内容.
我也试过使用getimagesize,但可能有更适合那个特定问题的东西.
我试图获得数百个远程图像的图像大小(图像尺寸,宽度和高度),并且getimagesize速度太慢.
我做了一些阅读,发现最快的方法是file_get_contents从图像中读取一定数量的字节并检查二进制数据中的大小.
以前有人试过吗?我该如何检查不同的格式?有人见过这个库吗?
当我在将图像保存到SD卡之前搜索如何找到图像的大小时,我发现了这个:
bitmap.getByteCount();
Run Code Online (Sandbox Code Playgroud)
但是这个方法是在API 12中添加的,我正在使用API 10.所以我再次发现了这个:
getByteCount()只是一种方便的方法,它完全按照你在else块中的方式执行.换句话说,如果您只是重写getSizeInBytes以始终返回"bitmap.getRowBytes()*bitmap.getHeight()"
这里:
所以,通过计算,bitmap.getRowBytes() * bitmap.getHeight()我得到了价值120000 (117 KB).
SD卡上的图像尺寸在哪里1.6 KB.
我错过了什么?或做错了?
谢谢
当我尝试getimagesize($img)并且图像不存在时,我收到错误.我不想先检查文件是否存在,只是处理错误.
我不确定它是如何try catch工作的,但我想做的事情如下:
try: getimagesize($img) $works = true
catch: $works = flase
Run Code Online (Sandbox Code Playgroud) 有谁知道PHP的getimagesize()函数返回的第3个值的所有可能结果?示例此代码将返回:
$imageinfo['2'] = 2;对于jpg图像,$imageinfo['2'] = 3;对于png图像,$imageinfo['2'] = 0;对于gif图像.上面的数字可能不正确,但你明白了.
我无法在php.net或其他任何地方找到第3个值的所有可能结果的列表.
$imageinfo = getimagesize($imageurl);
$image_type = $imageinfo['2'];
Run Code Online (Sandbox Code Playgroud) 我使用PHP脚本上传图像,然后使用PHP的getImageSize()获取尺寸,然后根据图片方向(纵向或横向)对图像进行处理.
然而(PHP版本5.4.12)在某些 .jpg文件中它获得了高度和宽度,并且在某些(用iPhone拍摄)它交换它们,认为肖像图片实际上是风景.
它不仅发生在我的本地Wampserver上,也发生在远程服务器上(具有不同的PHP版本).
有谁知道如何
1)修复这个或
2)找到解决问题的方法?
我一直在谷歌,但我得到的是getimagesize和filesize.
getimagesize dosent获取KB大小只是宽度和高度,这不是我想要的.
filesize给我的消息警告:filesize()[function.filesize]:
有问题的文件的stat失败是51kb .jpg文件
$imgsize=filesize("http://localhost/projects/site/schwe/user/1/1.jpg");
Run Code Online (Sandbox Code Playgroud)
不起作用,
我该怎么做到这一点?
我收到以下错误:
getimagesize(https://static1.squarespace.com/static/570d03d02b8dde8b2642afca/570f74e87c65e4819dec6812/57272dbfb6aa606f78a5d8b5/1470397291105/4XTRYCK3.jpg):无法打开流:HTTP请求失败!HTTP/1.1 400错误请求
我的浏览器中的图像打开没有问题.
有谁知道为什么会失败?
我在 Google Sheet 中有一个按 URL 列出的图像列表。图像位于远程服务器上。我通过图像 (URL) 功能在我的工作表中获得了预览。
有没有办法通过公式或脚本获取每行中每个远程图像的宽度和高度?

我正在尝试使用带有URL的getimagesize和http一切都很好.但是,当尝试在https url上使用函数时,我收到"读取错误"通知,结果为false.我查了一下,我在服务器上安装了OpenSSL 0.98(因此它也应该与https一起使用).我知道我可以先下载图像,然后再使用它,但在我看来,这应该可行,而且我错过了一些东西.你能不能给我一些解决方案(除了首先下载图像然后打开它)?
先感谢您.
getimagesize ×10
php ×8
image ×2
android ×1
file-upload ×1
filesize ×1
gd ×1
http ×1
https ×1
openssl ×1
orientation ×1
ssl ×1
try-catch ×1