PHP’de Dosya Yükleme

Mart 17, 2008 tarihinde PHP kategorisine eklendi | Yorum yok

PHP ile sunucuya dosya yükleyebiliriz ancak bu işlem için iki elemana ya da kod grubuna ihtiyacımız olacaktır.

Dosya Yükleme Formu

Bu bir HTML formudur ve basit olarak aşağıdaki gibidir. “form.php” olarak kaydedebiliriz.

<html>
<body>

<form action=”upload_file.php” method=”post”
enctype=”multipart/form-data”>
<label for=”file”>Dosya adı:</label>
<input type=”file” name=”file” id=”file” />
<br />
<input type=”submit” name=”submit” value=”Gönder” />
</form>

</body>
</html>

Formda, (enctype=”multipart/form-data) ifadesi bir dosyaya ait içerikler istenildiğinde kullanılır. Yine girdi tipi olarak kullandığımız (type=”file”) ile bir dosya için işlem yapılacağını belirtiriz.

Komut Dosyası

“upload_file.php” dosyası.

<?php
if ((($_FILES["file"]["type"] == “image/gif”)
|| ($_FILES["file"]["type"] == “image/jpeg”)
|| ($_FILES["file"]["type"] == “image/pjpeg”))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo “Geri gönderme kodu: ” . $_FILES["file"]["error"] . “<br />”;
}
else
{
echo “Dosya adı: ” . $_FILES["file"]["name"] . “<br />”;
echo “Dosya tipi: ” . $_FILES["file"]["type"] . “<br />”;
echo “Dosya boyutu: ” . ($_FILES["file"]["size"] / 1024) . ” Kb<br />”;
echo “Geçici dosya: ” . $_FILES["file"]["tmp_name"] . “<br />”;

if (file_exists(”upload/” . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . ” dosyası zaten var. “;
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
“upload/” . $_FILES["file"]["name"]);
echo “Dosya yeri: ” . “upload/” . $_FILES["file"]["name"];
}
}
}
else
{
echo “Geçersiz dosya”;
}
?>

Örneği çalıştırmadan önce dosyalarla aynı dizinde bir “upload” klasörü oluşturunuz. Örnek çalıştırıldığında dosyamız “upload” klasörüne yüklenecektir ve komut dosyamızda belirtilen “dosya adı, boyutu, yeri” gibi bilgiler ekrana yazılacaktır. Yine komut dosyasının ilk satırlarında bulunan dosya tipi ve boyutu yüklemeyi kısıtlayacaktır. Bu özellikler kullanım yerine göre değiştirilebilir.

Konuyla ilgili diğer bir ayrıntı ise bu tür dosya yükleme formlarının yaratacağı güvenlik sorunudur. Alınabilecek en basit önlem dosya yükleme işlemlerini yetki verilen kişilerin yapmasına izin vermektir.

Bu yazının Popülerliği: 30% [?]

Yorumlar

Yorum Yapın




Aşagıdaki iki kelimeyi boş olan kutuya yazınız. Bu uygulama zararlı yorumları engellemek için. Anlayışınıza teşekkur ederim.