允許使用PHP上傳文件

01

的06

HTML表單

如果您想允許網(wǎng)站訪問者將文件上傳到web服務(wù)器,則需要首先使用PHP創(chuàng)建一個(gè)HTML表單,允許人們指定要上傳的文件。盡管代碼在本文后面都已組裝好(以及一些有關(guān)安全性的警告),但代碼的這一部分應(yīng)該如下所示:

請選擇一個(gè)文件:

此表單將數(shù)據(jù)發(fā)送到您的web服務(wù)器到名為"的文件;upload.php,"將在下一步創(chuàng)建。

02

of 06

上傳文件

實(shí)際的文件上傳很簡單。這小塊代碼上傳通過HTML表單發(fā)送到它的文件。

$目標(biāo)="上傳/";
$目標(biāo)=$目標(biāo)。basename($U文件['上傳']['名稱']);
$ok=1;if(移動(dòng)#上傳#文件($U文件['上傳']['tmp#名稱'],$目標(biāo)))
{
echo"文件"。basename($U文件['uploadedfile']['名稱'])。"已上傳";
}
其他{
echo"抱歉,上傳文件有問題。";
}
?>

第一行$目標(biāo)="上傳/&##34舉辦健康知識講座;;是分配上傳文件的文件夾的位置。正如您在第二行中看到的,此文件夾是相對于upload.php文件。如果你的文件在www.yours.com/files/upload.php,然后它會(huì)上傳文件到www.yours.com/files/upload/yourfile.gif。確保你記得創(chuàng)建這個(gè)文件夾。

然后,使用move_-uploaded_-file()將上傳的文件移動(dòng)到其所屬的位置。這將其放在腳本開頭指定的目錄中。如果失敗,則給用戶一條錯(cuò)誤消息;否則,用戶被告知該文件已上傳。

03

of 06

限制文件大小

您可能需要限制上傳到網(wǎng)站的文件大小。假設(shè)您沒有't更改HTML表單中的表單字段,因此仍將其命名為"上傳"-此代碼檢查以查看文件的大小。如果文件大于350k,則訪問者被給予"文件太大"錯(cuò)誤,并且代碼集$ok等于0。

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

您可以通過將350000更改為不同的數(shù)字來將尺寸限制更改為更大或更小。如果您不關(guān)心文件大小,請將這些行保留下來。

117 04 118

of 06

按類型

限制文件

對可以上傳到網(wǎng)站的文件類型設(shè)置限制并阻止某些文件類型上傳都是明智的。

例如,此代碼檢查是否訪問者沒有將PHP文件上傳到您的網(wǎng)站。如果是PHP文件,則訪問者會(huì)收到錯(cuò)誤消息,并將$ok設(shè)置為0。

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

在第二個(gè)示例中,只允許將GIF文件上傳到站點(diǎn),并且在將$ok設(shè)置為0之前,所有其他類型都會(huì)出現(xiàn)錯(cuò)誤。

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

科普_1

您可以使用這兩個(gè)示例來允許或拒絕任何特定的文件類型。

05

of 06

放在一起

把它放在一起,你得到這個(gè):

$目標(biāo)="上傳/";
$目標(biāo)=$目標(biāo)。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;#//
////如果一切都好,我們嘗試上傳它
其他
{
{
如果(移動(dòng)_上傳上傳上傳上傳上傳)////////185>
}
{
如果(移動(dòng)_上傳上傳上傳上傳上傳\#文件(35;39;],$目標(biāo)))
{
Echo"文件"。basename($U文件['uploadedfile']['名稱'])。"已上傳";
}
其他
{
echo"抱歉,上傳文件有問題。";
}
}
?>

在將此代碼添加到網(wǎng)站之前,您需要了解下一個(gè)屏幕上概述的安全含義。

06

of 06

關(guān)于安全的最終想法

如果您允許文件上傳,則將自己對愿意卸載不良事物的人開放。一個(gè)明智的預(yù)防措施是不允許上傳任何可能包含惡意代碼的PHP,HTML或CGI文件。這提供了一些安全性,但不確定防火。

另一個(gè)注意事項(xiàng)是使上傳文件夾私有,以便只有您才能看到它。然后,當(dāng)你看到上傳時(shí),你可以批準(zhǔn)和移動(dòng)它或刪除它。根據(jù)您希望接收多少文件,這可能是耗時(shí)且不切實(shí)際的。

此腳本可能最好保存在私有文件夾中。不要't把它放在公眾可以使用它的地方,或者你可能最終會(huì)得到一個(gè)裝滿無用或潛在危險(xiǎn)文件的服務(wù)器。如果您真的希望公眾能夠上傳到您的服務(wù)器空間,請盡可能安全地寫入。