允许使用PHP上传文件

01

的06

HTML表单

如果您想允许网站访问者将文件上传到web服务器,则需要首先使用PHP创建一个HTML表单,允许人们指定要上传的文件。尽管代码在本文后面都已组装好(以及一些有关安全性的警告),但代码的这一部分应该如下所示:

请选择一个文件:

此表单将数据发送到您的web服务器到名为"的文件;upload.php,"将在下一步创建。

02

of 06

上传文件

实际的文件上传很简单。这小块代码上传通过HTML表单发送到它的文件。

$目标="上传/";
$目标=$目标。basename($U文件['上传']['名称']);
$ok=1;if(移动#上传#文件($U文件['上传']['tmp#名称'],$目标))
{
echo"文件"。basename($U文件['uploadedfile']['名称'])。"已上传";
}
其他{
echo"抱歉,上传文件有问题。";
}
?>

**行$目标="上传/&##34举办健康知识讲座;;是分配上传文件的文件夹的位置。正如您在第二行中看到的,此文件夹是相对于upload.php文件。如果你的文件在www.yours.com/files/upload.php,然后它会上传文件到www.yours.com/files/upload/yourfile.gif。确保你记得创建这个文件夹。

然后,使用move_-uploaded_-file()将上传的文件移动到其所属的位置。这将其放在脚本开头指定的目录中。如果失败,则给用户一条错误消息;否则,用户被告知该文件已上传。

03

of 06

限制文件大小

您可能需要限制上传到网站的文件大小。假设您没有't更改HTML表单中的表单字段,因此仍将其命名为"上传"-此代码检查以查看文件的大小。如果文件大于350k,则访问者被给予"文件太大"错误,并且代码集$ok等于0。

如果($上传&u size>350000)
{
echo"您的文件太大。
";
$ok=0;
}

您可以通过将350000更改为不同的数字来将尺寸限制更改为更大或更小。如果您不关心文件大小,请将这些行保留下来。

117 04 118

of 06

按类型

限制文件

对可以上传到网站的文件类型设置限制并阻止某些文件类型上传都是明智的。

例如,此代码检查是否访问者没有将PHP文件上传到您的网站。如果是PHP文件,则访问者会收到错误消息,并将$ok设置为0。

if($上传type=="text/php")
{
echo"无php文件
";
$ok=0;
}

在第二个示例中,只允许将GIF文件上传到站点,并且在将$ok设置为0之前,所有其他类型都会出现错误。

如果(!($upload#type=="image/gif"){
echo"您只能上传gif文件。
";
$ok=0;
}

科普_1

您可以使用这两个示例来允许或拒绝任何特定的文件类型。

05

of 06

放在一起

把它放在一起,你得到这个:

$目标="上传/";
$目标=$目标。basename($Å文件['上传'][&\##39;姓名&\\35;\35;#39;]);
$ok=1;
///这是我们的大小条件
如果($$上传大小&t;350000)<350000)<174>{
echo \\##34;你的文件太大。
&\\35;#34;你的文件太大。
&\\\\#ා34;;;;;;;;;;;

{
echo"没有php文件
";
$ok=0;
}
//////



如果($ok==0)
{
echocho&\##34;很抱歉,您的文件没有上传,您的文件没有上传&\35;#//
////如果一切都好,我们尝试上传它
其他
{
{
如果(移动_上传上传上传上传上传)////////185>
}
{
如果(移动_上传上传上传上传上传\#文件(35;39;],$目标))
{
Echo"文件"。basename($U文件['uploadedfile']['名称'])。"已上传";
}
其他
{
echo"抱歉,上传文件有问题。";
}
}
?>

在将此代码添加到网站之前,您需要了解下一个屏幕上概述的安全含义。

06

of 06

关于安全的最终想法

如果您允许文件上传,则将自己对愿意卸载不良事物的人开放。一个明智的预防措施是不允许上传任何可能包含恶意代码的PHP,HTML或CGI文件。这提供了一些安全性,但不确定防火。

另一个注意事项是使上传文件夹私有,以便只有您才能看到它。然后,当你看到上传时,你可以批准和移动它或删除它。根据您希望接收多少文件,这可能是耗时且不切实际的。

此脚本可能比较好保存在私有文件夹中。不要't把它放在公众可以使用它的地方,或者你可能最终会得到一个装满无用或潜在危险文件的服务器。如果您真的希望公众能够上传到您的服务器空间,请尽可能安全地写入。