当前位置:首页 > CMS教程 > phpcms > 列表

phpcms v9多文件上传字段获取文件url路径地址的方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-08 13:31:07 浏览: 评论:0 

如题,phpcms v9里多文件上传字段,获取的数据为一串字符,数组字符格式,如何才能取得多文件上传的文件地址?

论坛有几种解决方法:

1. 使用php的eval函数将字符转为数组,并赋值,当然因为这串字符有换行,而phpcms里的php标签,也就是{php ..... } 不允许换行,只能一行一句, 所以需要先将这串字符取出换行符,挺繁琐的,不建议使用这个方法"

  1. {pc:get sql="select * FROM v9_py_data "  num="8" cache="3600" return="data"}  
  2.   {loop $data $r
  3.    
  4.   {php eval("\$arr=" . $r[upload] . ";");echo $arr[0]['fileurl'];} 
  5.   {/loop} 
  6.           {/pc} 

2. 方法二是正则匹配出url地址,感觉没必要,其实我们只需要拿到这个数组就行了,问题是现在他是这个数组的字符形式,相当扯淡,不建议使用此方法.

3. 正解:phpcms有个方法:string2array ,用来将数组字符串处理并返回为数组,所以这个方法才是正解,方法如下:

$a = string2array($b); 

多文件上传字段,比如为 allfiles,那么一般循环出来就是  $r[allfiles],要获取地址 那就是:

$allfiles = string2array( $r[allfiles]); 

然后循环(loop)  $allfiles 逐个取出其文件地址,当然如果只限制为一个文件上传那么直接就 $allfiles[0][fileurl]就行了.

根据上面描述总结得出自建字段上传,获取地址或者描述:

  1. {pc:content action="lists" moreinfo="1" catid="$catid" num="1" order="id DESC"}   
  2.             {loop $data $r} 
  3.             {php eval("\$arr=" . $r[test] . ";");echo $arr[0]['fileurl'];}            
  4.             {/loop} 
  5.             {/pc} 
  6. {pc:get sql="SELECT setting FROM phpcms_poster WHERE spaceid = 1 AND type='images' AND disabled=0 ORDER BY listorder ASC" num="20"
  7.             {loop $data $r} 
  8.             <?php eval("\$narry =$r[setting];"); ?> 
  9.             <a href="{$narry[1][linkurl]}"> 
  10. <img style="padding-bottom:12px" src="{$narry[1][imageurl]}" alt="{$narry[1][alt]}" width="390" height="260"> 
  11. </a> 
  12.             {/loop} 
  13.             {/pc} 

Tags: phpcms v9 多文件上传

分享到: