move_uploaded_file
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
move_uploaded_file — Karşıya yüklenen bir dosyayı yeni bir yere taşır
Açıklama
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.
Bağımsız Değişkenler
dosyaismi
-
Karşıya yüklenen dosyanın ismi.
hedef
-
Dosyanın taşınacağı adres.
Dönen Değerler
Başarı durumunda true
döner.
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.
Örnekler
Ö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];
// basename() dosya sistemi çapraz saldırılarını engelleyebilir;
// dosya isminin daha fazla doğrulanması/temizliği uygun olabilir
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>
Notlar
Bilginize:
move_uploaded_file() işlevi
open_basedir yönergesinden
etkilenir. Bununla birlikte, karşıya yüklenecek dosyaların
hedef
'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.
Uyarı
Hedefte bir dosya varsa üzerine yazılır.