曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3879|回复: 0
打印 上一主题 下一主题

move_uploaded_file() -- 将上传文件移送到新位置

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2012-6-13 19:26:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上传文件的相关信息(名字,大小,尺寸,上传后的临时存储路径及文件名,错误代码等)可以用系统变量 $_FILES  来获取。

在上传提交后,我们可以接着用 move_upload_file() 将临时文件移到特定的目录下,否则临时文件不会被保存,move_upload_file() 语法如下:
[Plain Text] 纯文本查看 复制代码
bool move_uploaded_file ( string $filename , string $destination )

第 1 个参数 $filename 是临时文件的路径和文件名,这个参数可以通过 $_FILES["字段名"]["tmp_name"] 来获取。
第 2 个参数 $destination 是目的文件的路径及文件名。

move_uploaded_file() 函数会首先检查参数 filename 指定的临时保存是否为 HTTP 通讯协议上传的文件,如果不是,那么直接返回 FALSE,表示文件移动失败,否则将文件移动到参数 destination 所指定的位置,并根据参数 destination 来修改文件名。

不过,如果因为其他因素造成 move_uploaded_file() 函数无法顺利移动临时文件,比如文件不存在或者权限问题,那么不论有没有移动临时保存,临时保存都会被自动删除。

使用该函数需要注意的是,它不支持 UTF-8 编码,所以上传文件时,文件名不能出现非 ASCII 字符,例如中文,只要文件名包含中文,则上传一定失败。如果上传的文件包含中文名,那么先使用 iconv() 函数进行相应名字的转换即可,但此时注意系统的不同而有所区别,如中文 Windows 使用的是 GB2312 编码,而 Linux 上使用的是 UTF-8 编码。

测试代码可参考:《使用 CURL 命令进行简单文件上传
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-6 10:20 , Processed in 0.144482 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表