如何修复:警告:file_get_contents(http://www.domain.com/assets/magento_img/18540_01.jpg):

Posted

技术标签:

【中文标题】如何修复:警告:file_get_contents(http://www.domain.com/assets/magento_img/18540_01.jpg):【英文标题】:How to fix: Warning: file_get_contents(http://www.domain.com/assets/magento_img/18540_01.jpg): 【发布时间】:2016-01-09 23:19:38 【问题描述】:

我们正在尝试通过 Dataflow 将一些产品导入 magento 高级配置文件并收到以下错误。我们搜索了高低,但找不到任何有关如何解决此问题的答案。我非常希望有人能够对此事有所了解。

请任何人帮忙解决这个问题,我们将不胜感激。

警告:file_get_contents(http://www.domain.com/assets/magento_img/18540_01.jpg):打开流失败:HTTP 请求失败! HTTP/1.1 404 Not Found in /var/www/vhosts/domain.com/httpdocs/app/code/local/Dataflow/Model/Convert/Handler/Image.php on line 64

这是我们正在使用的 xml 脚本。

<action type="dataflow/convert_adapter_io" method="load">
    <var name="type">ftp</var>
    <var name="host"><![CDATA[000.00.00.00]]></var>
    <var name="passive">true</var>
    <var name="user"><![CDATA[username]]></var>
    <var name="password"><![CDATA[password]]></var>
<var name="path"><![CDATA[/]]></var>
    <var name="filename"><![CDATA[feedname.csv]]></var>
    <var name="format"><![CDATA[csv]]></var>
</action>

<action type="lanot_dataflow/convert_parser_csv" method="parse">
<var name="delimiter"><![CDATA[,]]></var>
<var name="enclose"><![CDATA[]]></var>
<var name="fieldnames">true</var>
<var name="_single_category_path">true</var>

    <var name="map">
        <map name="product_model"><![CDATA[sku]]></map>
        <map name="product_name"><![CDATA[name]]></map>
        <map name="product_description"><![CDATA[description]]></map>
        <map name="product_retail_price"><![CDATA[price]]></map>
        <map name="product_price"><![CDATA[cost]]></map>
        <map name="product_quantity"><![CDATA[qty]]></map>
        <map name="image_location"><![CDATA[image]]></map>
        <map name="IPG_Cat_Desc_1"><![CDATA[category_ids]]></map>
        <map name="IPG_Cat_Desc_2"><![CDATA[category_ids]]></map>
        <map name="product_brand"><![CDATA[manufacturer]]></map>
        <map name="product_barcode"><![CDATA[ean]]></map>

        <map name="@type"><![CDATA[simple]]></map>
        <map name="@attribute_set"><![CDATA[Default]]></map>
        <map name="@visibility"><![CDATA[Catalog, Search]]></map>
        <map name="@status"><![CDATA[Enabled]]></map>
        <map name="@tax_class_id">Taxable Goods</map>
        <map name="@websites">base</map>
        <map name="@weight">0</map>
        <map name="@short_description"><![CDATA[@description]]></map>
        <map name="@thumbnail"><![CDATA[@image]]></map>
        <map name="@small_image"><![CDATA[@image]]></map>
    </var>

    <var name="store"><![CDATA[0]]></var>
    <var name="number_of_records">1</var>
    <var name="decimal_separator"><![CDATA[.]]></var>
    <var name="adapter"><![CDATA[catalog/convert_adapter_product]]></var>
    <var name="method">parse</var>
</action>

【问题讨论】:

检查文件权限? 你能说得更具体一点,因为我对此很陌生。我应该检查文件夹权限吗?哪个文件夹或文件? 您的文件可以通过 url 访问吗? 是的,我们可以通过 ftp url 访问文件 我的意思是网址。喜欢https://example.com/images/a/jpg 【参考方案1】:

根据您的 cmets,此问题是由于图像不存在。所以我建议你先检查图像。你可以通过简单的检查来做到这一点。

$file = "http://www.domain.com/assets/magento_img/18540_01.jpg";
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') 
    $exists = false;

else 
    $exists = true;

或者你可以试试

if (@getimagesize('http://www.domain.com/assets/magento_img/18540_01.jpg')) 
          // your code
    

更多信息file_exists。

【讨论】:

@Quentin :当我最近访问 SO 时,我找到了具有相同代码的答案。你也应该在那里发出警告,以防它不适用于 HTTP ***.com/questions/7991425/… 我将上面的代码放在哪里,即哪个文件和路径会很棒,我对magento很陌生。 /var/www/vhosts/domain.com/httpdocs/app/code/local/Dataflow/Model/Convert/Handler/Image.php on line 64上方检查一下 if (!file_put_contents($targetPath . DS . $info['basename'], file_get_contents($imageUrl))) return null; if (@getimagesize('domain.com/assets/magento_img/18540_01.jpg')) // 你的代码

以上是关于如何修复:警告:file_get_contents(http://www.domain.com/assets/magento_img/18540_01.jpg):的主要内容,如果未能解决你的问题,请参考以下文章

file_get_contents() 如何修复错误“无法打开流”、“没有这样的文件”

如何处理 PHP 中 file_get_contents() 函数的警告?

如何修复警告“没有明确的所有权”

如何修复 brew doctor 警告

访问 youtube api 时出错:“警告:file_get_contents() [function.file-get-contents]: URL > file-access is dis

如何修复代码分析警告[重复]