接公司任务,要求在微擎后台 微站功能 ->站点管理->幻灯片下对上传组件作修改
●当上传非img图片文件时会提示错误TYPE提示:
由于新手,对网页破解生疏,所以下面用比较笨的方法破解:
1:先找到网页的模板文件:
H:\phpStudy\PHPTutorial\WWW\sjfx\web\themes\default\site\slide.html
代码片段如下:
<div class="form-group">
<label class="col-xs-12 col-sm-2 col-md-2 col-lg-1 control-label">缩略图</label>
<div class="col-sm-10 col-xs-12">
{php echo tpl_form_field_image('thumb', $item['thumb'])}
<span class="help-block"></span>
</div>
</div>
2:把组件代码去掉,换成自己的组件代码(更换前先做好备份):
更换为:
<div class="form-group">
<label class="col-xs-12 col-sm-2 col-md-2 col-lg-1 control-label">缩略图</label>
<div class="col-sm-10 col-xs-12">
<input name="f" type="file"/>
<span>上传此文件</span>
<span class="help-block"></span>
</div>
</div>
2、找表单的提交属性:
发现表单的 action=" "为空,证明这个模板是是又其他PHP调用的,好了,找调用它的PHP文件吧。
果不其然。
对应PHP源码:
H:\phpStudy\PHPTutorial\WWW\sjfx\web\source\site\slide.ctrl.php
就是这里了,哈哈哈
在里面添加代码吧,嘤嘤嘤:
//新增新增新增新增新增新增新增新增新增新增新增新增新增新增新增新增新增新增新增新增新增新增新增新
if ($_FILES["f"]["error"] > 0){
echo "Error: " . $_FILES["f"]["error"] . "<br />";
}else{
// echo "Upload: " . $_FILES["f"]["name"] . "<br />";
// echo "Type: " . $_FILES["f"]["type"] . "<br />";
// echo "Size: " . ($_FILES["f"]["size"] / 1024) . " Kb<br />";
// echo "Stored in: " . $_FILES["f"]["tmp_name"]. "<br />";
$fpath = '../'.'attachment/images/'.$_W['uniacid'].'/'.@date('Y',$_W['timestamp']).'/'.@date('m',$_W['timestamp']);//绝对路径
$data['thumb']='images/'.$_W['uniacid'].'/'.@date('Y',$_W['timestamp']).'/'.@date('m',$_W['timestamp']).'/'.$_FILES['f']['name'];//写入数据库用
move_uploaded_file($_FILES["f"]["tmp_name"],$fpath.'/'.$_FILES["f"]["name"]);
}
//***************************************************************************************
好了,试试效果:
好像成功了,看看数据库和图片文件夹是否有东西:
好了。到这里已经完成任务了。由于作者是新手,只能用笨方法,最好的方法肯定是修改原组件的限制代码,例如找:
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?>
修改对应的类型。