将文件上传到服务器上的不同目录
Posted
技术标签:
【中文标题】将文件上传到服务器上的不同目录【英文标题】:Uploading a file to a different directory on server 【发布时间】:2014-02-06 06:08:22 【问题描述】:我正在使用 php 来允许用户在我的网络应用上上传照片。
我正在使用 PHP 函数:
move_uploaded_file();
我定义了上传路径:
define('UPLOADPATH', 'images/');
将照片放在我的 images/ 目录中
现在我想让用户能够从我网站的子域做同样的事情。
我做吗:
define('UPLOADPATH', 'http:/mobile.website.com/images/');
如果是这样,我如何防止其他人从他们的服务器上传恶意文件到我的服务器?
【问题讨论】:
【参考方案1】:首先move_uploaded_file()
的第二个参数应该是目录,而不是 URL,
我的意思是这是正确的:
define('UPLOADPATH', 'mobile/images/');
move_uploaded_file($tmp,UPLOADPATH.$name);
但这不是:
define('UPLOADPATH', 'http:/mobile.website.com/images/');
move_uploaded_file($tmp,UPLOADPATH.$name);
其次,为了防止别人上传恶意文件到你的服务器,你最好检查一下文件的扩展名。
【讨论】:
我总是这样做,我不会在这里发布我所有的代码。 那么prevent others from uploading malicious files to my server
是什么意思
我的意思是任何人都可以使用 URL 作为上传路径,将他们在他们网站上上传的文件移动到我服务器上的 images/ 目录吗?还是 move_uploaded_file() 不接受 URL?以上是关于将文件上传到服务器上的不同目录的主要内容,如果未能解决你的问题,请参考以下文章