Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于预览图像的本机Magento自定义工具上载程序的URL变量?_Php_Ajax_Image_Magento_Upload - Fatal编程技术网

Php 用于预览图像的本机Magento自定义工具上载程序的URL变量?

Php 用于预览图像的本机Magento自定义工具上载程序的URL变量?,php,ajax,image,magento,upload,Php,Ajax,Image,Magento,Upload,在magento自定义工具中,可以设置文件上载选项 但我希望当你上传一个图像预览在屏幕上,至少当你点击编辑产品 哪个是加载图像的变量? 使用购物车图像链接的URL: htt…MY-WEB.com/sales/download/customoption/id/107/key/a5cae363d6cde2e9c6/ 我用以下方法进行测试: img src=。。 此URL和display ok,但哪个变量使用此URL来干扰回音 在这里,它们使用flash,但是如果您没有使用ajax检测到flash

在magento自定义工具中,可以设置文件上载选项

但我希望当你上传一个图像预览在屏幕上,至少当你点击编辑产品

哪个是加载图像的变量? 使用购物车图像链接的URL:

htt…MY-WEB.com/sales/download/customoption/id/107/key/a5cae363d6cde2e9c6/

我用以下方法进行测试: img src=。。 此URL和display ok,但哪个变量使用此URL来干扰回音

在这里,它们使用flash,但是如果您没有使用ajax检测到flash

我认为这些文件可以谈论这一点:

app/design/frontend/base/default/template/catalog/product/view/options/type/file.phtml


app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Options/Type/file.php

编辑删除了旧答案,因为我误解了问题

好的,这次我希望我正确地理解了你想要什么。要从添加到购物车的产品中获取自定义选项图像的URL,您可以从quote item获取该图像:

    $item = $this->getItem();
    $optionIds = $item->getOptionByCode('option_ids');

    if( $optionIds ) {
      $options = array();
      foreach( explode( ',', $optionIds->getValue() ) as $optionId ) {
        $option = $this->getProduct()->getOptionById( $optionId );

        if( $option->getData( 'type' ) == 'file' ) {
          $option = $item->getOptionByCode( 'option_' . $optionId );

          $value = unserialize( $option->getData( 'value' ) );

          var_dump( $value );
          var_dump( Mage::getUrl( 'sales/download/downloadCustomOption', array( 'id' => $option->getId(), 'key' => $value[ 'secret_key' ] ) ) );

          echo '<img src="' . Mage::getUrl( 'sales/download/downloadCustomOption', array( 'id' => $option->getId(), 'key' => $value[ 'secret_key' ] ) ) . '"/>';
        }
      }
    }
$item=$this->getItem();
$optionId=$item->getOptionByCode('option_id');
如果($optionId){
$options=array();
foreach(分解(“,”,$optionId->getValue())为$optionId){
$option=$this->getProduct()->getOptionById($optionId);
如果($option->getData('type')=='file'){
$option=$item->getOptionByCode('option'.$optionId);
$value=unserialize($option->getData('value'));
var_dump(价值);
var_dump(Mage::getUrl('sales/download/downloadCustomOption',数组('id'=>$option->getId(),'key'=>$value['secret_key']));
echo'$option->getId(),'key'=>$value['secret_key'])。“/>”;
}
}
}
输出:它会转储下载url和$value内容($value['fullpath']是图像文件的位置,但禁止从浏览器访问它-您必须将文件移动到媒体文件夹中可从web访问的其他位置)。 echo将显示图像


$item的类型是Mage\u Sales\u Model\u Quote\u item(这段代码在checkout/cart/index controller-your\u page\u url/index.php/checkout/cart->code可以添加到template/checkout/cart/item/default.phtml文件的顶部以查看它是如何工作的)。

谢谢Domen,但实际上我想要的更简单,只是想知道我需要做一个echo“在page file.phtml上,当我添加到购物车时,产品可以进行编辑,然后我预览图像,我只需要创建图像的变量:htt…MY-WEB.com/sales/download/downloadCustomOption/id/107/key/a5cae363d6cde2e9c6/对于file.phtml,因此图像**摘要”只需要此变量“:ht….MY-WEB.com/sales/download/downloadCustomOption/id/107/key/a5cae363d6cde2e9c6/ok,实际上,如果您单击编辑,即最好来文件。phtml在产品本身中,但在购物车中不起作用。。。default.phtml如果可以工作,但不需要如何删除打印的代码:array(9){[“type”]=>string(9)“image/png”[“title”]=>string(34)“500…..Log.png”[“quote_path”]=>string(68)“/media/custom_options/quote/5/0/e46…否则它将错误地出现在产品表中,我认为它应该是这一行:它带来了访问图像的url,但带有附加信息:“target=“\u blank”">Logo.png 500 x 555 px。但是在任何情况下,代码都不会打印回显,我尝试放置一个预览图像但不会打印回显,感谢您提前查看$\u FormattedOptionValue-该变量通过调用$this->GetFormattedOptionValue初始化,该函数是我答案中代码的基础,因此,因为您需要带有以上代码的格式更合适。关于$\u FormattedOptionValue['full\u view'],在我的测试中从未设置过此值,因此回显它最多只会导致php错误-包含您引用的其他信息的url存储在$\u FormattedOptionValue['value']中(如您所见)。我找不到“编辑”按钮,因此我认为如果您创建一个屏幕截图并在其上绘制您要添加的内容、该页面的确切url路径以及如何到达该页面,会更好。然后将其添加到您的问题中。