php的zend framework和smarty的项目中,如何让模板页的表单中上传的图片文件正常保存到服务器?
我在弄的这个php项目中,使用的Zendframe和smarty的平台,模板里的form有文件上传的需求,我使用表单里inputtype=file的形式,把文件post给...
我在弄的这个php项目中,使用的Zendframe 和 smarty的平台,模板里的form有文件上传的需求,我使用表单里input type=file的形式,把文件post给控制器路径index.php?controller=aaa&action=a。
但是结果在控制器aaa里的action=a的阶段,
[file] => Array
(
[name] => 测试营业执照_s1.gif
[type] => image/gif
[tmp_name] => E:\\wamp\\tmp\\php88.tmp
[error] => 0
[size] => 5611
)
找不到临时文件E:\\wamp\\tmp\\php88.tmp,也就无法把它用move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)这样的形式另存成正式的文件。
但是如果不使用zend framework的机制,只使用smarty,在模板页的表单里把post的路径写成aaa.php的形式,就可以获得临时文件,并保存。请问这是为什么,如果不绕过zendframe的机制该怎么解决呢? 展开
但是结果在控制器aaa里的action=a的阶段,
[file] => Array
(
[name] => 测试营业执照_s1.gif
[type] => image/gif
[tmp_name] => E:\\wamp\\tmp\\php88.tmp
[error] => 0
[size] => 5611
)
找不到临时文件E:\\wamp\\tmp\\php88.tmp,也就无法把它用move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)这样的形式另存成正式的文件。
但是如果不使用zend framework的机制,只使用smarty,在模板页的表单里把post的路径写成aaa.php的形式,就可以获得临时文件,并保存。请问这是为什么,如果不绕过zendframe的机制该怎么解决呢? 展开
4个回答
展开全部
看一下.htaccess 文件是不是把对文件的访问重定向了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是控制器写错路径了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我没用过这两个平台,你再问问别人!~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你的路径搞错了
追问
我查了下php手册,发现move_uploaded_file()要检查文件是否是真正上传的。否则什么都不执行。现在正是这样。后来我设置断点调试,跟踪到了这个E:\\wamp\\tmp\\phpXX.tmp文件,把它重命名成phpXX.gif发现它就是个图片,只是move_uploaded_file()出于安全考虑觉得这个文件不是上传上去的。之后我干脆用copy()函数把E:\\wamp\\tmp\\phpXX.tmp复制到我想让保存的路径和文件名,就可以了,郁闷,有可能牺牲了安全性!不知还有啥办法?
追答
复制为tmp文件
真正的文件名 用database 存储起来
读文件的时候再转回来
或者尝试下 用
rename()
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询