将文件上传到服务器上的不同目录

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?

以上是关于将文件上传到服务器上的不同目录的主要内容,如果未能解决你的问题,请参考以下文章

怎么上传文件到linux服务器

如何将本地文件上传到centos linux 下面

如何将http上的文件远程上传到ftp空间里?

PHP文件上传

scp. -本地文件上传服务器

文件目录无法从 apache camel 上传 azure blob 上的文件