【问题标题】:Download image dynamically动态下载图片
【发布时间】:2013-03-08 12:24:20
【问题描述】:

我的供应商给我一个包含所有产品及其图片的 xml 文件。

图像托管在供应商的数据库中,因此在 xml 文件夹中看起来像 www.webservice.supplier.com/index.php?action=getimage&id=10

如何下​​载此图像或在我的 opencart 系统中使用?

【问题讨论】:

    标签: image xml-parsing opencart


    【解决方案1】:

    您可以尝试使用 file_get_contents、fopen 或任何其他相关的 php 函数打开文件。一旦打开到流中,您可以使用一组相关函数(fwrite 等)保存它。

    详细来说,这是一些快速而肮脏的 php 代码。

    //This is the source image...
    $url='http://www.google.es/logos/2013/womens_day_2013-1055007-hp.jpg';
    
    $file=fopen($url, 'r'); //Check with your server's provider, just in case they won't allow you to do this.
    
    if(!$file)
    {
        die('ERROR: Could not read file');
    }
    else
    {
        //This is where you'll store the file. Check the directory permissions.
        $destination=fopen('results/file_in_disk_.jpg', 'w');
    
        if(!$destination) die('ERROR: Could not create or open destination file');
        else
        {
            while($data=fread($file, 1024))
            {
                fwrite($destination, $data);
            }
    
            fclose($destination);
            fclose($file);
        }
    }
    

    图像提供者可能会输出与该 url 关联的图像标题,因此如果源 url 看起来不像图像,请不要担心。

    请记住,您应该获得供应商的许可才能下载和使用图片。

    希望对您有所帮助。

    编辑:我忘记了,您应该将该代码包装在从 XML 文件读取并执行其操作的其他部分中。不要忘记检查已经存在的图像!

    【讨论】:

    • 非常感谢!如果我不得不对文件进行一点转换,它也能很好地工作......所以我转到页面 www.webservice.supplier.com/index.php?action =getimage&id=10 并在图像出现的位置生成新的 url,然后复制该 url 并粘贴到您的代码中
    • 最后一个问题:如果我想用出现在 url (www.webservice.supplier.com/index.php?action=getimage&id=10) 中的 Id 重命名图像,我该怎么做做什么?
    • 再次抱歉..图片太多了怎么办?当然有我的供应商的许可
    • 让我们看看。首先,您是否能够使用 php 读取 XML 文件?如果是这样,您解析文件和读取每个图像(当然,重命名它)应该没有问题。如果您不知道您应该开始尝试查看您的服务器提供商是否安装了合适的 XML 解析器。让我们先试试 SimpleXML...看看这些,如果您遇到问题,请告诉我 - w3schools.com/php/php_xml_simplexml.asp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多