Image Opencart-客户将不同的文件上载到一个产品,并从站点获得不同的响应

Image Opencart-客户将不同的文件上载到一个产品,并从站点获得不同的响应,image,file,upload,opencart,option,Image,File,Upload,Opencart,Option,我使用的是Opencart 1.5.6,我有两个文件上传选项用于一个产品。一个选项是图像,另一个是视频。我将其设置为在上传后显示图像预览 在catalog/controller/product/product.php中的public function upload()下,我对代码进行了如下更改,以获取缩略图并更改成功消息: if(!$json&&is_上传的文件($this->request->files['file']['tmp_name'])和&file_存在($this->request-

我使用的是Opencart 1.5.6,我有两个文件上传选项用于一个产品。一个选项是图像,另一个是视频。我将其设置为在上传后显示图像预览

catalog/controller/product/product.php
中的
public function upload()
下,我对代码进行了如下更改,以获取缩略图并更改成功消息:

if(!$json&&is_上传的文件($this->request->files['file']['tmp_name'])和&file_存在($this->request->files['file']['tmp_name'])){
$file=basename($filename)。'..md5(mt_rand());
//隐藏上载的文件名,以便人们无法直接链接到它。
$json['file']=$this->encryption->encrypt($file);
//加上这个//
$json['thumb']=$file;
移动上传的文件($this->request->files['file']['tmp\u name'],DIR\u DOWNLOAD.$file);
//改变了这个//
$json['success']=“文件”'.basename($filename)。“”已上载。“;
}
catalog/view/theme//template/product/product.tpl
中,我添加了一个div来放置缩略图


然后在
product.tpl
的底部,我做了以下更改:


$(“.image area”).html(“图像文件预览”);
}
});
//-->
以上所有代码都可以完美地工作。当我上传图像时,它会给出一条包含文件名的成功消息,并在我为其创建的div中显示图像

问题是,当我点击上传按钮上传视频并上传图像时(我没有将此限制为只上传视频文件)。它将用我上传到视频区域的内容替换先前上传的图像预览区域。我知道这是因为它访问相同的代码

前端两个按钮的HTML如下所示:

上传文件:
上传视频:
问题: 如何分离此代码,以便只有图像上载选项可以访问它,而视频上载选项可以访问不同的代码并做出不同的响应?


如果有任何其他解决方案,我将非常感谢您提供任何提示。

我将更改以下代码:


$(“.image area”).html(“图像文件预览”);
致:


$(“.image area”).html(“图像文件预览”);

谢谢你的提示

如果你允许上传任何东西(这意味着你没有检查上传的内容),你应该在PHP端检查上传文件的mime类型,如果它只属于允许的图像,那么你应该返回
$json['thumb']
。然后在ajax响应中的JS中检查是否设置了
json['thumb]
,只有在这种情况下才将缩略图设置到图像区域…清除吗?我认为只有一个上传字段就足够了,你不需要一个用于视频,一个用于图像…我认为有效的方法是在代码周围添加一个if option id=image option id:$(“.image area”).html(“图像文件预览”);谢谢