1
fangjinmin 2015-05-28 09:27:31 +08:00
你这个代码是PHP的代码,如果要在模板里写的话,在PHP标签里写吧。
{php} $ext = substr($values['name'], strrpos($values['name'], '.')+1); $this->assign('ext', $ext); {/php} |
2
Azone 2015-05-28 10:05:56 +08:00
为什么不用 pathinfo 函数来获取扩展名呢
|
3
metalbug OP @fangjinmin 好难哦,这么改都没反应,帮帮我呗?qq1554583
@Azone $ext = pathinfo($_FILES['photo_1']['tmp_name'], PATHINFO_EXTENSION); 也没反应啊 |
4
metalbug OP 谁帮我搞好给50块买烟小费
|
5
cevincheung 2015-05-28 23:54:42 +08:00 1
@metalbug
tmp_name是文件上传以后的临时保存路径,是没有扩展的$_FILES['key']['name']才是上传时的扩展名。 Ps: $_FILES['key']['name']是不可靠的,因为用户可以上传一个没有后缀名的文件。所以不如上传文件后使用getimagesize($_FILES['key']['tmp_name'])来判断图片类型 via: http://cn2.php.net/manual/zh/function.getimagesize.php |
6
metalbug OP @cevincheung 貌似有一点反应了,但是,还是........不行
Warning: getimagesize(20150402174053.gif): failed to open stream $file = getimagesize($_FILES['photo_1']['name']); $smarty->assign('filename', $file); <img src="{$relative}/media/photos/{$photos[i].PID}.{$filename|pathinfo:$smarty.const.PATHINFO_EXTENSION} |
7
cevincheung 2015-05-29 00:17:01 +08:00 1
@metalbug getimagesize的参数是tmp_name。不是name -_-#
$_FILES['key']: name: 用户上传的文件名(比如:C:\Users\Public\Picture\a.jpg) size: 大小(单位为B) error: 错误(为0表示成功) tmp_name: 上传成功后在服务器的临时路径(比如:/tmp/php_tmpxxxxx) |
8
metalbug OP @cevincheung tmp_name 不出错了,但是还是抓不到扩展名啊,图片还是没有扩展名,我醉了~PHP好难哦,文件发你你帮我看看吧???
|
9
cevincheung 2015-05-29 00:25:36 +08:00 1
@metalbug
getimagesize返回的是一个数组,不是一个字符串。这个看名字也能看的出来吧?- -# |
10
metalbug OP @cevincheung 就算是数组,模板里也应该有那字串了吧?但是模板里
{$filename|pathinfo:$smarty.const.PATHINFO_EXTENSION} 这个位置还是空白... |
11
metalbug OP @cevincheung 试了半天,还是不行,出错。不知道怎么传递到模板
if ( isset($_POST['upload_photo_submit']) ) { 点发帖了里面才有文件 $file = getimagesize($_FILES['photo_1']['name']); 里面才能有文件,然而 } $smarty->assign('filename', $file);//是在外面 Notice: Undefined variable: file in... Undefined variable: file怎么办? |
12
cevincheung 2015-05-29 01:04:22 +08:00 1
@metalbug
唉…… $info = getimagesize($_FILES['key'][['tmp_name']); $extension = strtr($info['mime'],array('image/'=>'','jpeg'=>'jpg')); echo $extension; |
13
metalbug OP @cevincheung 呃~我不懂啊,还是谢谢你,麻烦你啦,我还是明天花钱找人做吧,看代码看的,感觉好晕哦@_@ 谢啦
|
14
metalbug OP @cevincheung 现在就是不知道怎么抓取上传的文件名...
<?php $smarty->assign('filename', 'foo\bar.txt'); ?> {* template *} {$filename|pathinfo:$smarty.const.PATHINFO_EXTENSION} {* outputs 'txt' *} 忙不?你QQ多少?帮我看看呗??? |
15
metalbug OP 知道$smarty->assign('filename', $file); 为什么没有值了,因为没点上传按钮是不会有文件的。要点了上传按钮才会有文件,才会得到这个扩展名。然而,点上传就要if ( isset($_POST['upload_photo_submit']) ) 那么IF里面的值assign抓不到。咋办?
|
16
metalbug OP @cevincheung 我发现从开始的地方就错了,因为
$smarty->assign('filename', 'jpg');付值JPG img src="photos/{$photos[i].PID}.{$filename}前台都没有反应 src="photos/123.">扩展名还是没有,空白的扩展名 我想是不是可以在{$photos[i].PID}里面直接带扩展名呢? 好难哦............... |