(PHP 4 >= 4.0.3, PHP 5)
move_uploaded_file — Karşıya yüklenen bir dosyayı yeni bir yere taşır
$dosyaismi
, string $hedef
)
Bu işlev, dosyaismi
ile belirtilen dosyanın karşıya
yüklenen geçerli bir dosya olduğundan emin olduktan sonra (PHP'nin HTTP
POST mekanizması ile karşıya yüklenen bir dosya ise) dosyayı
hedef
ile belirtilen adrese taşır.
Bir dosyanın karşıya yüklenmesi ile dosya içeriğinin kullanıcıya veya aynı sistem üzerindeki diğer kullanıcılara ifşa edilmesini sağlayacak şeyleri yapma şansı doğacaksa bu sınamalar oldukça önem kazanır.
dosyaismi
Karşıya yüklenen dosyanın ismi.
hedef
Dosyanın taşınacağı adres.
Eğer dosyaismi
karşıya yüklenen geçerli bir dosya
değilse işlem gerçekleşmez ve işlev FALSE
ile döner.
Eğer dosyaismi
karşıya yüklenen geçerli bir dosya
ise fakat bir sebeple taşınamıyorsa işlem gerçekleşmez ve işlev
FALSE
ile dönerken ek olarak bir uyarı çıktılanır.
Örnek 1 - Çok sayıda dosyanın karşıya yüklenmesi
<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>
Bilginize:
move_uploaded_file() işlevi
safe_mode
ve open_basedir yönergelerinden etkilenir. Bununla birlikte, karşıya yüklenecek dosyalarınhedef
'e taşınmasına izin verilmesinden dolayı yapılacak işlem bu sınırlamalarla çelişir. move_uploaded_file() işlevi, karşıya yüklenecek dosyaların sadece PHP üzerinden taşınmasına izin vererek işlemin güvenliğini sağlar.
Hedefte bir dosya varsa üzerine yazılır.