PHP中move_uploaded_file如何用绝对路径上传至项目外文件夹?
问题解答
不能直接用http://localhost/newFolder/$projectLogo这种HTTP链接作为move_uploaded_file的目标路径。原因很简单:这个PHP函数是直接操作服务器本地文件系统的,它只认服务器上的本地文件路径(不管是绝对路径还是相对路径),根本不认识HTTP URL这种网络地址。
给你两个实用的解决办法:
- 直接写服务器本地的绝对路径:比如你的服务器是XAMPP环境,Windows下可能是
C:/xampp/htdocs/newFolder/$projectLogo,Linux下可能是/var/www/html/newFolder/$projectLogo,直接把这个路径填进去就好,不用再用一堆../跳层级。 - 定义全局常量统一管理:在项目的配置文件里加一行
define('UPLOAD_TARGET', '/var/www/html/newFolder/');,之后上传的时候直接用move_uploaded_file($temp_name, UPLOAD_TARGET . $projectLogo);,以后要改路径只需要改常量值就行,非常方便。
最后别忘了给newFolder设置好权限(和之前的文件夹一样设777,或者更安全点给web服务器的用户分配读写权限),不然文件移动会失败。
内容的提问来源于stack exchange,提问作者youngP
相关产品推荐
相关产品推荐

