dilicms附件上传生成地址由相对路径改为绝对路径
本帖最后由 我是我 于 2012-4-2 12:43 编辑最近在用dilicms做个站,发现附件上传生成的是相对与根目录的地址,在后台添加的时候图片无法直接显示。而且我的网站没有放在根目录下,于是就在生成的地址前加上了 base_url() ,使生成的地址变成绝对地址。
后来发现了个更好的办法:
platform_default.php文件,53行
public function file_url($path = '')
{
//return '/'.setting('attachment_dir').'/'.$path;
return base_url().setting('attachment_dir').'/'.$path;
}
原先的方法:
共修改了两个文件
1.sys_uploader.php
<?php foreach($attachment as $v): ?>
<li id="attachment_<?php echo $v['aid']; ?>">
<!--将附件显示地址由相对路径改为绝对路径,base_url()最后有斜杆"/"所以截取掉-->
<span class="title"><input type="text" class="normal" value="<?php echo $v_url = substr(base_url(),0,strlen(base_url())-1). $this->platform->file_url($v['folder'].'/'.$v['name'].'.'.$v['type']); ?>" /></span>
<?php if($v['image'] == 1): ?>
<a href="<?php echo $v_url; ?>" target="_blank">预览</a>
<?php endif;?>
<a href="javascript:void(0);">删除</a>
</li>
<?php endforeach; ?>
这是个视图文件,打开内容编辑页面就会加载。
2.upload.js
function insert_new_attachment(v)
{
// v_url = attachment_dir + v + '/' + v + '.' + v;
//将原先的相对路径改为绝对路径
v_url = base_url.substr(0,base_url.length-1)+attachment_dir + v + '/' + v + '.' + v;
html = "<li id=\"attachment_" + v + "\"><span class=\"title\"><input type=\"text\" class=\"normal\" value=\""+ v_url + "\" />(未保存)</span>";
if(v == 1)
{
html += "<a href=\"" + v_url + "\" target=\"_blank\">预览</a>";
}
html += "<a href=\"javascript:void(0);\" onclick=\"if(confirm('是否要删除该附件?')){delete_attachment('"+v+"');}\">删除</a>";
return html;
}
在附件生成成功后会调用这个js脚本在文本框里显示生成文件的路径。
因为base_url()最后会有斜杆所以用了截取函数,不知道大家有什么更好的办法,
页:
[1]