Fecmall

第 2 位会员

会员
个人信息
  • 加入于 2017-05-31 17:38:45
  • 城市 Qingdao
  • GitHub https://github.com/fecshop
  • 最后登录时间 11天前
  • 签名 净化自己,潜心编码
个人简介
Terry,Fecmall开源产品作者,12年电商经验一线程序员开发者,擅长规划产品,架构设计。
个人成就
  • 发表文章次数 744
  • 发布回复次数 5760
  • 个人主页浏览次数 683
麻烦帮我看下,总是有些产品缩略图有问题,7年前

你先自己尝试处理,尽自己最大努力。

麻烦帮我看下,总是有些产品缩略图有问题,7年前

而创建文件是在这里

protected function getProductNewPath($imageVal, $imgResize, $waterImgPath)
    {
        if (!$this->_md5WaterImgPath) {
            if (!$waterImgPath) {
                $waterImgPath = 'defaultWaterPath';
            }
            //echo $waterImgPath;exit;
            $this->_md5WaterImgPath = md5($waterImgPath);
        }

        $baseDir = '/cache/'.$this->_md5WaterImgPath;
        if (is_array($imgResize)) {
            list($width, $height) = $imgResize;
        } else {
            $width = $imgResize;
            $height = '0';
        }

        $imageArr = explode('/', $imageVal);
        $dirArr = ['cache', $this->_md5WaterImgPath, $width, $height];
        foreach ($imageArr as $igf) {
            if ($igf && !strstr($igf, '.')) {
                $dirArr[] = $igf;
            }
        }
        $createDir = \fec\helpers\CDir::createFloder($this->getBaseDir(), $dirArr);
        if($createDir){
            $newPath = $this->getBaseDir().$baseDir .'/'.$width.'/'.$height.$imageVal;
            $newUrl = $this->getBaseUrl().$baseDir .'/'.$width.'/'.$height.$imageVal;
            return [$newPath, $newUrl];
        }else{
            return [];
        }
    }

$createDir = \fec\helpers\CDir::createFloder($this->getBaseDir(), $dirArr); 这个代码执行的

这些说的都是思路

你按照我上面说的,修改下代码,试试,不同,只能你自己来顺一下找下问题了,我本地的都是好用的。

麻烦帮我看下,总是有些产品缩略图有问题,7年前

http://www.normankeys.com/transponder 你看这个报错:

imagejpeg(/www/yii2_fecshop/appimage/common/media/catalog/product/cache/bd935443df1c50537d4edaab4af5d446/230/230/0/1a/01ake1brrlg2bt11506330509.jpg): failed to open stream: No such file or directory

你的这个文件路径应该是不存在,创建失败:/www/yii2_fecshop/appimage/common/media/catalog/product/cache/bd935443df1c50537d4edaab4af5d446/230/230/0/1a

麻烦帮我看下,总是有些产品缩略图有问题,7年前

@fecshoper #9楼 你的域名:http://www.normankeys.com/ ,是正式域名吗、?可以做个展示放出来让别人看看吗? 如果方便的话

麻烦帮我看下,总是有些产品缩略图有问题,7年前

哎,不说你了,别打击了你的自信心,那就罪过了,说这些是为了让你多动手,多思考。

麻烦帮我看下,总是有些产品缩略图有问题,7年前

应该是你前面创建文件路径失败造成的,你自己做下输出,就找出来问题所在了。

感觉你的动手能力太差!

出来这个问题,自己做下数据,把自己输出的信息贴上来,别这样冷不丁的扔上来。

麻烦帮我看下,总是有些产品缩略图有问题,7年前

我进行了小更新:

你更新下试试

services/product/Image.php


protected function actionGetResize($imageVal, $imgResize, $isWatered = false)
    {
        
        $originImgPath = $this->getDir($imageVal);
        if (!file_exists($originImgPath)) {
            $originImgPath = $this->getDir($this->defaultImg);
        }
        $waterImgPath = '';
        if ($isWatered) {
            $waterImgPath = $this->getDir('/'.$this->waterImg);
        }
        list($newPath, $newUrl) = $this->getProductNewPath($imageVal, $imgResize, $waterImgPath);
        if($newPath && $newUrl){
            if (!file_exists($newPath)) {
                \fec\helpers\CImage::saveResizeMiddleWaterImg($originImgPath, $newPath, $imgResize, $waterImgPath);
            }

            return $newUrl;
        }
    }
	
	
public static function createFloder($baseDir,$createdDir){
		if(!is_dir($baseDir)){
			throw new InvalidValueException('base dir is not a correct dir');
		}
		if(!$createdDir){
			throw new InvalidValueException('created dir can not empty');
		}
		if(!is_array($createdDir)){
			$createdDir = trim($createdDir,'/');
			$dir_arr = explode('/',$createdDir);
		}else{
			$dir_arr = $createdDir;
		}
		$dir = $baseDir;
		foreach($dir_arr as $folder){
			$dir = $dir.'/'.$folder;
			if(!is_dir($dir)){
				mkdir($dir,0777);
			}
		}
        if(is_dir($dir)){
            return $dir;
        }else{
            return false;
        }
		
	}

上面两个函数替换一下, 然后把 @fec/helpers/CDir.php

public static function createFloder($baseDir,$createdDir){
		if(!is_dir($baseDir)){
			throw new InvalidValueException('base dir is not a correct dir');
		}
		if(!$createdDir){
			throw new InvalidValueException('created dir can not empty');
		}
		if(!is_array($createdDir)){
			$createdDir = trim($createdDir,'/');
			$dir_arr = explode('/',$createdDir);
		}else{
			$dir_arr = $createdDir;
		}
		$dir = $baseDir;
		foreach($dir_arr as $folder){
			$dir = $dir.'/'.$folder;
			if(!is_dir($dir)){
				mkdir($dir,0777);
			}
		}
        if(is_dir($dir)){
            return $dir;
        }else{
            return false;
        }
		
	}

替换一下试试

麻烦帮我看下,总是有些产品缩略图有问题,7年前

不仅仅这个文件,是这个文件夹下面的所有子文件夹,按照上面的命令执行下

麻烦帮我看下,总是有些产品缩略图有问题,7年前

是不是文件权限导致的?你用 chmod 777 -R appimage/common 试试

protected function actionGetResize($imageVal, $imgResize, $isWatered = false)
    {
        
        $originImgPath = $this->getDir($imageVal);
        if (!file_exists($originImgPath)) {
            $originImgPath = $this->getDir($this->defaultImg);
        }
        $waterImgPath = '';
        if ($isWatered) {
            $waterImgPath = $this->getDir('/'.$this->waterImg);
        }
        list($newPath, $newUrl) = $this->getProductNewPath($imageVal, $imgResize, $waterImgPath);
        if (!file_exists($newPath)) {
            \fec\helpers\CImage::saveResizeMiddleWaterImg($originImgPath, $newPath, $imgResize, $waterImgPath);
        }

        return $newUrl;
    }

如果还不行,你自己按照报错,找到相应的文件,试试,我程序要改一下,遇到这种情况直接过滤掉,而不报错。

fecshop appapi 两处与路由有关的问题7年前

在@app/config/fecshop_local_modules/ 下面加入你新建的modules的配置

然后在@app/local/local_modules里面新建你的模块文件。

具体的详细,你自己研究吧,需要学习Yii2的

fecshop appapi 两处与路由有关的问题7年前

你去学习下yii2把,在@app/local 里面新建自己的模块,通过配置引入就可以了

fecshop appapi 两处与路由有关的问题7年前

@dionyang #4楼 你说的接口,就是appserver,目前在开发,演示地址:http://demo.fancyecommerce.com/#/

首页,产品,搜索,分类,这几个页面开发完成,账户中心也快了。

1-2个月应该就开发完了

fecshop appapi 两处与路由有关的问题7年前

appapi 和 appserver部分,现在还不完善,您先别用这部分的功能吧

现在在开发appserver,大致还需要1-2个月的时间,完善下文档,然后回来在完善appapi。

这两部分会存在一些问题,对于appfront apphtml5 appadmin 这三部分是完善的。

fecshop appapi 两处与路由有关的问题7年前

今天有点忙,明天早上回复下

支付宝什么时候能加上去?7年前

你在问这个问题之前,你先去demo里面看看,是否有,然后再问可以吗?

demo: https://fecshop.appfront.fancyecommerce.com/

fecshop 是否支持mysql表前缀7年前

mysql加上了,mongodb是不支持的,

public static function collectionName()
    {
        return Inflector::camel2id(StringHelper::basename(get_called_class()), '_');
    }

上面是mongodb的。因此目前只能给mysql加上

fecshop 是否支持mysql表前缀7年前

我加一下这个,多谢!

Your Site Analytics