php文件上传功能

开始学习 php今天写个日记,php有个文件上传的功能。

把下面的upload.php文件放到服务器上,使用浏览器访问该文件即可打开该页面,即可以上传文件到服务器。源代码如下:

<?php
if( !empty( $_FILES['uploaded']['name'] ) )
{
 $target = "/home/kenson/";
 $target = $target . basename( $_FILES['uploaded']['name']) ;
 $ok=1;
 if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
 {
  echo "The file <b>". basename( $_FILES['uploaded']['name']).
  "</b> has been uploaded to <b>" . $target . "</b>";
 }
 else {
  echo "<h3>Sorry, there was a problem uploading your file.</h3>";
  echo "$target = " . $target . "<br />";
  echo "_FILES['uploaded']['name'] = " . $_FILES['uploaded']['name'] ."<br />";
 }
 echo "_FILES['uploaded']['tmp_name'] = " . $_FILES['uploaded']['tmp_name'] . "<br />";
}
?>
<br>
<form enctype="multipart/form-data" action="upload.php" method="POST">
 Please 'Choose File' then 'Upload':<br />
 &nbsp;&nbsp;<input name="uploaded" type="file" /><br />
 &nbsp;&nbsp;<input type="submit" value="Upload" />
</form>

代码解读:

1.  上传的文件在<input name="uploaded" type="file" />按钮中上传,由type="file"指定为上传内容为文件。

2.  到服务器执行php代码的时候文件已经上传完毕并且存在一个临时文件夹中(可能是/tmp下面),文件名为$_FILES['uploaded']['tmp_name'], 这个不是用户需要的文件名而是系统临时分配的文件名,用户的文件名在上传的时候已经传给服务器,存在变量_FILES['uploaded']['name']里面。

3. 执行move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))把文件从服务器临时文件夹中转移到指定的文件夹,这里指定/home/kenson目录下面。如果不执行转移文件的动作,服务器不会在临时文件夹中保存已经接收的文件。

你可能感兴趣的:(php文件上传功能)