2017-04-06 53 views
0

我使用的是一个非常好的灯箱脚本,但它需要我输出图像大小。我使用的网站是php,可以在上传图片时调整图片大小。它不会将图像大小存储在数据库中。使用php或javascript/jquery获取图像大小 - getimagesize失败

该代码需要显示如下。

<a href="http://www.fullurl.com/image.jpg" data-original-url="http://www.fullurl.com/image.jpg" data-original-width="123" data-original-height="456"> 
    <img src="http://www.fullurl.com/thumbnail-image.jpg" alt="product name" /> 
</a> 

我一直在使用和getimagesize尝试,但它只能在尚未调整由系统映像。我认为他们错过了一些重要的信息,因为已经上传但没有调整大小的图像工作正常。目前大约有1200张图片已经上传,因此重做它们不是一种选择。

我目前的方法是使用php如下。

<?php 
$image1 = 'http://www.fullurl.com/thumbnail-image.jpg'; 
list($width, $height) = getimagesize($image1); 
?> 

<a href="http://www.fullurl.com/image.jpg" data-original-url="http://www.fullurl.com/image.jpg" data-original-width="123" data-original-height="456"> 
    <img src="http://www.fullurl.com/thumbnail-image.jpg" alt="product name" /> 
</a> 

如果我使用以下我得到bool(false)作为输出。

$path1 = 'http://www.fullurl.com/image.jpg'; 
$vals_arr1 = getimagesize($path1); 
echo "<pre>";var_dump($vals_arr1);echo "</pre>"; 

我不是程序员。我的问题是如何输出图像信息如下?我很高兴尝试使用其他php,jquery/javascript。理想情况下,它需要简单而快速。

<a href="http://www.fullurl.com/image.jpg" data-original-url="http://www.fullurl.com/image.jpg" data-original-width="123" data-original-height="456"> 
+0

Typo? '$ image1 ='http://www.fullurl.com/thumbnail-image.jpg'];'应该是'$ image1 ='http://www.fullurl.com/thumbnail-image.jpg';' –

+0

这就是我删除插入图片网址的代码的地方。我已经从示例中删除了它。不幸的不是那么简单。不过谢谢。 – Legin76

回答

0

这工作

$path1 = 'https://jpeg.org/images/jpeg-home.jpg'; 
$vals_arr1 = getimagesize($path1); 
echo "<pre>";var_dump($vals_arr1);echo "</pre>"; 

的错误一定在别处。检查网址!他们有效吗? 并检查服务器上的allow_url_fopen是否设置为true

否则这可以帮助:https://stackoverflow.com/a/25231517/4916265

+0

是的,我已经检查过这个..当我手动输入网址的时候,我也得到了相同的结果。我还发现,如果我上传了一张图片,那很好,但是当我在现有的图片上使用内置的缩放功能时,它已经损坏。网址没有改变。和图像仍然工作在browsuer – Legin76

0

正如詹姆斯指出的点上PHP docs website,和getimagesize将它检查请求的信息之前下载整个图像。对于远程访问的大型图像来说,这非常缓慢。由于宽度/高度在文件的前几个字节中,因此不需要下载整个文件。他写了一个函数,通过流式传输字节来获得JPEG的大小,直到找到合适的数据来报告宽度和高度。

他写的方式将允许远程图像。

代码可以在这里找到:http://php.net/manual/en/function.getimagesize.php#88793

+0

这些图像不大于800x800 ..我刚刚检查的第一个是54kb和400x400。 – Legin76

+0

我在建议的URL上试用了James的代码。在由系统调整大小的图像上,它会给出响应“NULL”。我认为文件中缺少图像尺寸。 – Legin76

+0

可能是这种情况 –