Ajax Ima Upload Dosya İsimlendirme

David M. Boren

Hectopat
Katılım
12 Haziran 2016
Mesajlar
61
Daha fazla  
Cinsiyet
Erkek
Ajax ile Image Upload eden bir sistem buldum, ve bu sistemi Bootstrap Modal'a yerleştirdim. Image'ı upload ediyor sayfa yenilenmeden ama isimlendirmeyi random sayı uydurarak yapıyor yani mesela image'ın adı "logo.jpg" ise bunu "6567554logo.jpg" yapıyor. Ama ben bunu istemiyorum. Upload edilen dizinde veya DB de "logo.jpg" varsa bunu "logo_1.jpg" olarak adlandırmasını istiyorum,bunu nasıl yapabilirim. Kodları postun sonuna bıraktım, örnek bir kod belirtirseniz veyahut bir fikir verirseniz sevinirim.

Kodlar:
PHP:
<?php
include("config.php");
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif', 'bmp'); // valid extensions
$path = 'uploads/'; // upload directory
if(isset($_FILES['image']))
{
$img = $_FILES['image']['name'];
$tmp = $_FILES['image']['tmp_name'];
// get uploaded file's extension
$ext = strtolower(pathinfo($img, PATHINFO_EXTENSION));
// can upload same image using rand function --> rand(1000,1000000) - uniqid()
$final_image = rand(1000,1000000).uniqid().$img;
// check's valid format
if(in_array($ext, $valid_extensions))
{
$path = $path.strtolower($final_image);
if(move_uploaded_file($tmp,$path))
{
$query = $db->prepare("INSERT INTO image SET
image_name = ?");
$insert = $query->execute(array(
"$final_image"
));
echo "<img src='$path' />";
echo "<input type='hidden' value='$final_image' disabled id='file-value' />";
}
}
else
{
echo 'invalid';
}
}
?>
 
Son düzenleyen: Moderatör:
Kullandığın satırları incelesen keşke. Image ismini unique olarak oluşturuyor ve bunu eklerken de benzersiz bir id oluşturup ekliyor. Tek yapman gereken unique id oluşturan final_image değişkenini kaldırıp kayıt edilen resim ismine image name yazdırmak.

Diğer yandan zaten upload işleminde aynı dosyalar olduğu zaman kendisi onu sağlamakta. Ve son olarak en basitinden bir upload sınıfı kullan. Örn. class.upload.php - verot.net
 
Kullandığın satırları incelesen keşke. Image ismini unique olarak oluşturuyor ve bunu eklerken de benzersiz bir id oluşturup ekliyor. Tek yapman gereken unique id oluşturan final_image değişkenini kaldırıp kayıt edilen resim ismine image name yazdırmak.

Diğer yandan zaten upload işleminde aynı dosyalar olduğu zaman kendisi onu sağlamakta. Ve son olarak en basitinden bir upload sınıfı kullan. Örn. class.upload.php - verot.net

PHP:
$final_image = $img;

Bu şekilde de yaptım zaten evet,kodları inceledim ama. Şöyle varsayalım adam "logo.png" yükledi. Bu sefer logoyu değiştirmek istedi. Onun yüklediği makine de "logo.png" isminde bu dosya diyelim ki ben de diyorum ki upload ederken dosyanın adı aynı olacağı için öbürünün üstüne kaydedecek, bunu istemiyorum. "logo_1.png" şeklinde olmasını istiyorum.

Diğer yandan upload sınıfı isimlendirme işini yapıyor mu yapmıyorsa 5000 satırlık php kodunu projeye dahil etmenin bir anlamı olacağını düşünmüyorum!
 
Son düzenleme:
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı