Altta vereceğim kodu kullanabilirsiniz. Bir dosya yüklediğiniz zaman sol taraftaki tüm dosyalar bar kısmına dosyadi.uzantisi şeklinde yükleyecektir. Tek gereken domaininiz içinde dosyalar diye bir klasör olması yüklenen .jpg .png .pdf gibi fotoğraflar vs vs. dosyalar/ klasörünün içine otomatik olarak yüklenecektir.
Not: Kodun içerisinde hiç bir şekilde AUTH & Yetkilendirme sistemi kullanmadım. xxxx.com/dosyalar yazıp herkes dosyalarınıza erişebilir bilginize. <?php
$dosyaKlasoru = 'dosyalar';
if (isset($_POST['submit'])) {
if (!empty($_FILES['dosya'])) {
$yuklenenDosya = $_FILES['dosya'];
$dosyaAdi = basename($yuklenenDosya['name']);
$dosyaUzantisi = pathinfo($dosyaAdi, PATHINFO_EXTENSION);
// .exe uzantılı dosyaların yüklenmesini engelle
if ($dosyaUzantisi === 'exe') {
echo '<div class="alert alert-danger" role="alert">.exe uzantılı dosyalar yüklenemez.</div>';
return;
}
$hedefDosya = $dosyaKlasoru . '/' . $dosyaAdi;
if (move_uploaded_file($yuklenenDosya['tmp_name'], $hedefDosya)) {
echo '<div class="alert alert-success" role="alert">Dosya başarıyla yüklendi!</div>';
} else {
echo '<div class="alert alert-danger" role="alert">Dosya yüklenirken bir hata oluştu.</div>';
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Dosyalarım</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h1>Dosyalarım</h1>
<hr>
<div class="row">
<div class="col-md-6">
<h2>Tüm Dosyalar</h2>
<ul class="list-group">
<?php
$dosyalar = glob($dosyaKlasoru . '/*');
foreach ($dosyalar as $dosya) {
if (is_file($dosya)) {
$dosyaAdi = htmlspecialchars(basename($dosya), ENT_QUOTES, 'UTF-8');
echo '<li class="list-group-item"><a href="' . $dosya . '">' . $dosyaAdi . '</a></li>';
}
}
?>
</ul>
</div>
<div class="col-md-6">
<h2>Dosya Yükle</h2>
<form method="POST" enctype="multipart/form-data">
<div class="mb-3">
<input type="file" name="dosya" class="form-control" required>
</div>
<button type="submit" name="submit" class="btn btn-primary">Yükle</button>
</form>
</div>
</div>
</div>
</body>
</html>