当前位置: 首页 > 知识库问答 >
问题:

模块Prestashop 1.7:始终替换自定义图像上载

苏俊友
2023-03-14

若我并没有选择我的文件\ url字段,那个么它在数据库中总是会被删除。(即使图像已集成)

如果我在这种情况下单击保存,PC Image字段将被删除。

这是我的AdminCustomController

 protected function postImage($id)
    {


        $file = isset($_FILES['file_url']) ? $_FILES['file_url'] : false;



        if ($file && is_uploaded_file($file['tmp_name'])) {


            $path = _PS_MODULE_DIR_ . 'custom/img/';
            $tmp_arr = explode('.', $file['name']);
            $filename = $file['name'];



            if (!Tools::copy($file['tmp_name'], $path . $filename)) {
                $errors[] = Tools::displayError('Failed to load image');
            }

        }
}

这是renderForm()

public function renderForm()
    {
      $image_url = '';

       if($this->object->file_url) {
            $image_url = ImageManager::thumbnail(
                _PS_MODULE_DIR_ . 'homecase/img/' . $this->object->file_url,
                $this->table . $this->object->file_url,
                150,
                'jpg',
                true,
                true
            );
        }
        $this->fields_form = [
            //Entête
            'legend' => [
                'title' => $this->module->l('Edition'),
                'icon' => 'icon-cog'
            ],

                array(
                    'type' => 'file',
                    'label' => $this->l('PC Image'),
                    'name' => 'file_url',
                    'display_image' => true,
                    'image' => $image_url ? $image_url : false,
                ),

....

数据库中的上载和保存是可以的。但是当图像存在并且我没有在字段中选择其他图像时。file_url字段在DB中被擦除。

你能帮我吗?

谢谢

共有1个答案

麻茂材
2023-03-14

您需要检查是否上传了图像,并且仅在上传后更新数据库记录。所以,只要尝试添加returnfalse到您的postImage方法,并在数据库更新之前进行检查,如

如果($this-

 类似资料:
  • 需要 10.2.0+ 您可以在*.vue文件中定义自定义语言块。 自定义块的内容将由在vue-loader'选项的loaders对象中指定的加载器处理,然后由组件模块require。 配置类似于[先进的Loader配置](../ configurations / advanced.md)中描述的配置,除了匹配使用标记名称而不是lang`属性。 如果找到一个自定义块的匹配加载器,它将被处理; 否则将

  • 由于使用了容器模式来组织各模块的实例,意味着你可以比较容易的替换掉已经有的服务,以公众号服务为例: <...> $app = Factory::officialAccount($config); $app->rebind('request', new MyCustomRequest(...)); 这里的 request 为 SDK 内部服务名称。

  • 主要内容:自定义模块编写说明文档到目前为止,读者已经掌握了导入 Python 标准库并使用其成员(主要是函数)的方法,接下来要解决的问题是,怎样自定义一个模块呢? 前面章节中讲过,Python 模块就是 Python 程序,换句话说,只要是 Python 程序,都可以作为模块导入。例如,下面定义了一个简单的模块(编写在 demo.py 文件中): 可以看到,我们在 demo.py 文件中放置了变量(name 和 add)、函数(

  • 有人知道模拟器相机启动时是否有可能打开一些个人照片吗? 我有一个基于图像分析的应用程序,我想当我点击相机的按钮时,相机打开的不是默认的Android emulator运动图像。我希望它打开一些我设置为默认图像的图像。因此,当我选择拍照时,它将只显示该图像,当我拍照时,该图像将保存到gallery,而不是Android默认图像。

  • 下面是过滤器的外观。 对于WebSecurityConfigurerAdapter#configure(webSecurityWeb)web.忽略()中包含的路径,我希望该筛选器不会像Spring Security筛选器链的其余部分一样激发。 下面是它的样子 我希望在调用Spring Security链的其余部分时调用这个过滤器,并对web.igneration()中的路径忽略这个过滤器,就像Sp

  • 问题内容: 我有许多heroshot图像,单击它们时会弹出模式弹出窗口。我试图使光标在图像上移动时变成放大镜。即使我的位置正确,以下CSS也似乎无法正常工作。 有没有人做过类似的事情?我不介意一个JavaScript解决方案(如果存在)。 编辑 :它可以在Safari中,但不能在Firefox中使用。 问题答案: 您的问题可能是光标URL在Mac的Firefox中不起作用。 通过使用关键字,可以在