Herkese merhaba, Apache server üzerinde php uygulaması geliştirirken şöyle bir sorunla karşılaştım. Hiçbir şekilde dosya veya dizin oluşturamıyorum. Ayrıca basit bir Upload uygulaması yazdığımda seçtiğim dosyamın başarılı bir şekilde upload edildiği uyarısını alıyorum ama hedef dizinde dosya yok. Aynı şekilde dosya ve dizin oluşturmada da hata almıyorum ama hedef dizinde yine istediğimiz dosyalar yok. Dosya ve dizin izinleri ile ilgili olduğunu düşünerek çok araştırdım ama gördüğüm farklı sitelerde bu soruna çok uzak bilgilendirmeler yapılmış.Yani net bir cevap bulamadım. Forumda PHP geliştiricileri olduğunu düşündüm.Bilgisi olan varsa yardımını bekliyorum. Gerekli bilgileri paylaşmak istiyorum sizinle.
Sistem: Debian8-64bit
PHP sürüm:
PHP 5.6.17-0+deb8u1 (cli) (built: Jan 13 2016 09:10:12)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
touch('yenidosya');
mkdir('yenidizin');
Hiçbir hata almıyorum ama bulunduğum dizinde dosya veya dizin oluşturamadım.
Ayrıca yaptığım basit bir upload uygulamasını paylaşayım. Burda da dediğim gibi hiçbir hata almıyorum ama aktarmak istediğim dosya hedef dizinde yok.
index.php
<form action="upgonder.php" method="POST" enctype="multipart/form-data">
<input type="file" name="dosya" />
<input name="submit" type="submit" value="Gönder"/>
</form>
upgonder.php
if(isset($_FILES['dosya'])){
$hata = $_FILES['dosya']['error'];
if($hata != 0) {
echo 'Yüklenirken bir hata gerçekleşmiş.';
} else {
$boyut = $_FILES['dosya']['size'];
if($boyut > (1024*1024*3)){
echo 'Dosya 3MB den büyük olamaz.';
} else {
$tip = $_FILES['dosya']['type'];
$isim = $_FILES['dosya']['name'];
$uzanti = explode('.', $isim);
$uzanti = $uzanti[count($uzanti)-1];
if($tip != 'image/jpeg' || $uzanti != 'jpg') {
echo 'Yanlızca JPG dosyaları gönderebilirsiniz.';
} else {
$dosya = $_FILES['dosya']['tmp_name'];
copy($dosya, 'dosyalar/' . $_FILES['dosya']['name']);
echo 'Dosyanız upload edildi!';
}
}
}
}