PHP Upload edilen dosyanın ismi nasıl değiştirilir?

trgy67

Hectopat
Katılım
16 Ağustos 2019
Mesajlar
16
Merhaba. PHP dilinde yazılmış MySQL istemeyen basit bir resim upload scriptine ihtiyacım vardı. Google dedeye aratarak "PHP resim upload scripti" adındaki dosyayı indirdim ve gayet işime yarayacak şekilde çalıştı. Yalnız küçük bir değişiklik yapmak istiyorum. upload.php dosyasında.

PHP:
 /* Resmi Yeniden Adlandır */
 $handle->file_new_name_body = 'galeri_'.substr(base64_encode(uniqid(true)), 0, 5);

Buradaki kodda resmi siteye yükledikten sonra.

PHP:
"galeri_"

Xxxx olarak kaydediyor. Naçizane isteğim index.php dosyasına küçük bir isim formu ekleyerek galeri yerine isim bilgisini almak istiyorum. Yardımcı olabilir misiniz?

Dosya linki Burada
 
Son düzenleme:
Dosyaya benzersiz isim yapmak için Base64 ile encode ediyorsunuz. O yüzden POST veya GET ile Textbox içindeki değeri alınız. Ardından burada yer alan yere ekleyiniz.

PHP ile veri almak için;

PHP:
$value = $_GET["deger"];

Ek olarak direkt olarak değeri klasör ismi yapmayınız. Boşluk, özel karakter, script kodları gibi kodlardan arındırılmış saf bir isim belirleyiniz. Yoksa erişim sorunu ve sızma gibi sorunlar yaşayabilirsiniz.

GET ve POST hakkında detaylı bilgi için;
 
ChatGpt'ye resim yüklemek için php dosyası oluşturmak istediğimi form ile isim soyisim bilgisi almak istediğimi ve bu isim soyisim bilgisi ile dosya adının değiştirilmesini bildirdim. O da bana
PHP:
<!DOCTYPE html>
<html>
<head>
    <title>Resim Yükleme Scripti</title>
</head>
<body>
    <h1>Resim Yükleme Formu</h1>

    <?php
    // Form gönderildiğinde çalışacak kod
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $isim = $_POST['isim'];
        $soyisim = $_POST['soyisim'];
        $dosyaAdi = $_FILES['resim']['name'];
        $dosyaUzanti = pathinfo($dosyaAdi, PATHINFO_EXTENSION);

        // Resmi sunucuya kaydet
        $hedefKlasor = 'uploads/';
        $yeniDosyaAdi = $isim . '-' . $soyisim . '.' . $dosyaUzanti;
        $hedefDosya = $hedefKlasor . $yeniDosyaAdi;

        if (move_uploaded_file($_FILES['resim']['tmp_name'], $hedefDosya)) {
            // Resim başarıyla yüklendi, veritabanına kaydetme işlemleri burada yapılabilir

            // Örnek olarak, kaydedilen bilgileri ekrana yazdıralım
            echo "Resim başarıyla yüklendi.<br>";
            echo "İsim: " . $isim . "<br>";
            echo "Soyisim: " . $soyisim . "<br>";
            echo "Resim Adı: " . $yeniDosyaAdi;
        } else {
            echo "Resim yüklenirken bir hata oluştu.";
        }
    }
    ?>

    <!-- Resim yükleme formu -->
    <form method="POST" enctype="multipart/form-data">
        <label for="isim">İsim:</label>
        <input type="text" name="isim" required><br>

        <label for="soyisim">Soyisim:</label>
        <input type="text" name="soyisim" required><br>

        <label for="resim">Resim:</label>
        <input type="file" name="resim" required><br>

        <input type="submit" value="Gönder">
    </form>
</body>
</html>

olarak kod oluşturdu. Bu sayfa sorunsuz olarak çalıştı.

Sonrasında tek kullanımlık şifre, yüklenen resimin yeni sayfada görüntülenmesi gibi yazışmaların ardından tamda istediğim gibi bir sayfa oluşturdu.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…