开始学习 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 />
<input name="uploaded" type="file" /><br />
<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目录下面。如果不执行转移文件的动作,服务器不会在临时文件夹中保存已经接收的文件。