PHP中文件上传的一个问题

 更新时间:2010年09月04日 00:00:42   作者:  
不知道大家有没有遇到过这样的问题,在文件上传的时候,用 move_uploaded_file 这个函数不能移动文件,而用copy 或者 rename 确是可以的。
我也一直很困惑。在文档上,说的比较模糊,就是 move_uploaded_file 这个函数,加了一步检查,检查这个文件是否是有 HTTP POST 上传的,


至于,如何检查的没有说。


我google 了好一阵子,都没有能解决这个问题,也不知道问题出现在哪里。后来,终于决定看源代码。终于在 源代码里面看到 把文件名 和


php 配置中的 upload_tmp_dir 这个参数进行比较,如果文件在这个目录下面,那么 move_uploaded_file 才会进行移动操作。而且这个比较是大小写敏感,/ \ 在Windows 下面也是不一样的。而在PHP配置文件解析的时候,会调用一个realpath 函数,也就是是说,你在move_uploaded_file 之前,


必须对$file['tmp_name'] = realpath($file['tmp_name']); realpath 一下。


还有一种情况,大家要注意,就是 move_uploaded_file 如果配置成一个无法访问的路径,那么你不管怎么处理,move_uploaded_file 总是不能成功移动文件。

相关文章

  • php使用json-schema模块实现json校验示例

    php使用json-schema模块实现json校验示例

    这篇文章主要介绍了php使用json-schema模块实现json校验,结合实例形式分析了json-schema模块的安装及使用json-schema模块进行json校验的相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • PHP引用的调用方法分析

    PHP引用的调用方法分析

    这篇文章主要介绍了PHP引用的调用方法,结合实例形式分析了PHP中引用的常见调用技巧,需要的朋友可以参考下
    2016-04-04
  • php实现对象克隆的方法

    php实现对象克隆的方法

    这篇文章主要介绍了php实现对象克隆的方法,实例分析了php对象实例化与克隆的使用技巧,需要的朋友可以参考下
    2015-06-06
  • php下安装配置fckeditor编辑器的方法

    php下安装配置fckeditor编辑器的方法

    以下是我学习PHP时,总结一些安装配置fckeditor在线编辑器最实用的方法。其实调用fckeditor也只有两种调用方法。有什么大家可以在我博客上留言,我有时间会帮大家解答的。
    2011-03-03
  • PHP获取数组中某元素的位置及array_keys函数应用

    PHP获取数组中某元素的位置及array_keys函数应用

    获取数组中一元素的位置有很多方法,其中PHP自身就已经内置了一个函数array_keys(),下边的代码能够打印出所有PHP的内置函数,感兴趣的朋友可以了解下同时学习一下函数array_keys()的使用方法,就当巩固知识量啦
    2013-01-01
  • php中base_convert()进制数字转换函数实例

    php中base_convert()进制数字转换函数实例

    这篇文章主要介绍了php中base_convert()进制数字转换函数,以实例形式演示了十进制数与二进制、八进制与十六进制之间的转换方法,具有很好的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • PHP使用反射机制实现查找类和方法的所在位置

    PHP使用反射机制实现查找类和方法的所在位置

    这篇文章主要介绍了PHP使用反射机制实现查找类和方法的所在位置,实例分析了PHP反射机制的原理与使用反射机制实现对类和方法的查找技巧,需要的朋友可以参考下
    2016-04-04
  • 浅谈PHP之ThinkPHP框架使用详解

    浅谈PHP之ThinkPHP框架使用详解

    这篇文章主要介绍了浅谈PHP之ThinkPHP框架使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • php 字符串替换的方法

    php 字符串替换的方法

    使用explode函数,把要替换的字符串做为分割符号,然 后把两个数组元素中间接上要换成的字符串,然后UPDATE一下就行了
    2012-01-01
  • php数组合并array_merge()函数使用注意事项

    php数组合并array_merge()函数使用注意事项

    array_merge()函数在php中是对数组进行合并的,可以把多个数组合成一个数组,并且不改变原数组(www.111cn.net)的值了,但今天我在使用array_merge合并数组时碰到几个小细节上的问题,下面我举例子给各位朋友看看
    2014-06-06

最新评论