您好,匿名用户
随意问技术百科期待您的加入

php上传文件为什么要使用move_uploaded_file

0 投票

似乎教程里都是这么告诉我们的,在php里移动上传的文件要用move_uploaded_file,但是为什么非要使用这个函数来移动上传的文件呢?

上传文件的地址不是在$_FILES数组的tmp_name里面吗?而且我测试过,用一般的文件函数,像renamefile_get_contents之类的,都可以操作这个文件,那么不使用这个函数到底有什么坏处呢?

用户头像 提问 2012年 12月1日 @ Diana 上等兵 (326 威望)
分享到:

1个回答

0 投票
 
最佳答案

处于安全原因,手册上的说明是:

本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。
如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE。

is_uploaded_file函数上给出了一个例子:确保恶意的用户无法欺骗脚本去访问本不能访问的文件,例如 /etc/passwd。

用户头像 回复 2012年 12月1日 @ Lee Sin 上等兵 (347 威望)
选中 2012年 12月1日 @Diana
提一个问题:

相关问题

0 投票
0 回复 188 阅读
0 投票
1 回复 54 阅读
用户头像 提问 2013年 9月26日 @ Lucia 上等兵 (416 威望)
0 投票
1 回复 38 阅读
0 投票
1 回复 27 阅读
用户头像 提问 2013年 12月2日 @ Twitch 上等兵 (260 威望)
0 投票
1 回复 42 阅读
用户头像 提问 2012年 12月1日 @ Xerath 上等兵 (312 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...