>  기사  >  백엔드 개발  >  php 文件上传函数 move_uploaded_file_PHP教程

php 文件上传函数 move_uploaded_file_PHP教程

WBOY
WBOY원래의
2016-07-13 17:06:511322검색

上传文件
允许用户上传文件是必要的,许多网站,所以,我们如何做到这一点,正是?但话又说回来,有一些方便的书面文件上。审议了麻烦呢?那么,这里的一些帮助是稍微更容易消化。

首先,您需要HTML网页的形式将谎言。这种形式必须确定文件最大规模的上传,并必须有文件上传领域本身


       
   


MAX_FILE_SIZE界定的尽可能多的文件大小,以字节为单位,当然。名称属性上传领域(指定的档案价值的type属性)的重要组成部分,正如我们稍后将使用此在我们的脚本来知道哪些要上传的文件(这是用来支持多种上传) 。
下一步,我们要上传文件。但首先,重要的是要理解美元_FILE [ ]数组。

在美元_FILE [ ]数组,有一个项目,每一个领域中上传的形式发送用户此脚本。因此,在我们的案例,有一个指数命名为' userfield ' ,为一个外地与这个名字在我们的形式。每个值的数组也是一个关联数组,以下项和值(改写明确从文件) :

$target_file = '/path/to/upload/'.basename($_FILES['userfile']['name']);
?>
关键价值
'名称'文件名使用客户的计算机。
'型'的MIME类型的文件(如图像/ gif格式) 。该浏览器并不总是提供这方面的,和价值不应假定是正确的。
'大小'的大小上传的文件(以字节为单位) 。
' tmp_name '的文件给上传的文件,其中应立即转移,并更名后的成功上传。地点是无关紧要的,因为你使用的方法把文件( move_uploaded_file ,我使用后)都知道的位置。
'错误'的错误代码(或成功的代码,如果0 )的问题发生在上传。 (错误代码)

表1 :简要介绍了钥匙和价值观

所以,现在我们可以开始进行业务。首先,我们得到的文件名,我们将想给上传的文件,而且目录,我们希望把它。


$target_file = '/path/to/upload/'.basename($_FILES['userfile']['name']);
?>

使用basename是绝对必要的。没有这一点,您正在运行一个巨大的安全风险。如果用户要上传文件的名称,开始使用相对路径上升,如../../../, ,他们最终将得到根除,可以随时随地浏览到的文件的落实更多的目录后,原来的起点的道路。

警告:这是非常重要的是,可以确保服务器的权限写信给这个目录。如果您的服务器正在运行的任何发行版的Linux或Mac OS X ,您可能会需要属性的目录。
下一步,您只需将上传的文件为target_file 。我认为这样做的,如果为了试验的成功。

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $target_file)) {
 // Succeeded
 echo 'Yay!';
} else {
 // Failed
 echo 'No!';
}
?>


这真的就是这么回事。很简单,啊?您可以展开这一点,通过阅读PHP的文件序列和unserializing对象。如果您有任何疑问,可随时张贴的论坛。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/630495.htmlTechArticle上传文件 允许用户上传文件是必要的,许多网站,所以,我们如何做到这一点,正是?但话又说回来,有一些方便的书面文件上。审议了麻...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.