我有一个php脚本,当用户上传照片时会使用以下内容:
if (is_uploaded_file($HTTP_POST_FILES['picture1']['tmp_name'])) {
move_uploaded_file($HTTP_POST_FILES['picture1']['tmp_name'], $full_file_path);
}
我很好奇,我应该使用它吗?如果是这样,有什么好处吗?
if (is_uploaded_file($HTTP_POST_FILES['picture1']['tmp_name'])) {
copy($HTTP_POST_FILES['picture1']['tmp_name'], $full_file_path);
}
当脚本结束时,文件位于@ $ HTTP_POST_FILES ['picture1'] ['tmp_name']自动删除?
答案 0 :(得分:5)
move_uploaded_file
有一些好处,就像它检查以确保该文件是有效的上传文件一样,这很重要:
如果上传文件中的任何内容都可能向用户显示其内容,甚至向同一系统上的其他用户显示内容,则此类检查尤其重要。 - PHP文档
此外,您只需移动它,而不是复制数据。这意味着创建的整体数据更少。
第二个问题:是的,脚本完成后会删除该文件,这意味着除非您移动它,否则PHP无法访问它。
答案 1 :(得分:3)
首先,您应该使用$_FILES
而不是$HTTP_POST_FILES
。后者已被弃用,自PHP 6起将从PHP平台中删除。
其次,使用move_uploaded_file()
,因为与copy()
相比,它会执行额外的安全性检查。我不确切地知道这意味着什么,只有that's what the manual says。