2010-11-21 14 views
1

Kullanıcıların bir görüntüyü sunucudaki bir klasöre yüklemelerine izin veren bir form oluşturdum. Resmi veritabanına nasıl eklerim? Ben blog adında veritabanında upload adında bir tablo adı ve MediumBLOB değeriyle görüntü adı verilen bir satır oluşturdum.Görüntülerin veritabanına eklenmesi

Yukarıdaki sesler mantıksızsa, görüntüyü sunucudan dinamik olarak nasıl arayabilirim?

Teşekkür ederiz.

+1

Görüntüyü dosya sisteminde bırakmamanın ve yolu veya kimliğin DB'de saklamasının bir nedeni var mı? – Matthew

+0

@konforce Hayır, belirli bir sebep değil. Kimliğini db'de nasıl saklayabileceğimi ve daha sonra görüntüyü daha sonra id ile arayabileceğinizi açıklayabilir misiniz? Teşekkürler. Kimliği, img etiketinde mi tanımlarım? Teşekkürler. – brad

+0

(küçük harf b), genellikle sadece bir getimg.php? Id = 234234 komut dosyası yapıyorum ve daha sonra PHP betiği görüntüye yeniden yönlendirilecek, dosya içeriklerini olduğu gibi döndürecek ya da olabilecek herhangi bir kırpma/yeniden boyutlandırma işleminin üstesinden gelebilecek gerekli (ve önbellek). Ne olursa olsun, görüntü kimliğini veritabanında arayacak ve sunucudaki gerçek dosyanın yolunu bulacaktır. – Brad

cevap

1

Bkz. this howto. Ancak, sorgu argümanlarını satır içi geçirmek yerine parametrized sorguları kullanmayı düşünmelisiniz.

+0

harika bağlantı. Ama şimdi biraz kafam karıştı. Tam görüntüyü db'de saklamalı mıyım yoksa ona bir ID atamalı ve daha sonra kimliğiyle mi çağırmalıyım? Teşekkürler – brad

+0

Çoğu DBA, bir veritabanında görüntüler gibi büyük blob verilerini saklamanızı önerir; çünkü bir görüntüyü almak istediğiniz her zaman veritabanı sunucusuna gereksiz bir şekilde vergi gönderir. Buna yaklaşmanın iki yolu vardır: dosyaları web dizini içindeki bir dizinde saklayın, böylece web sunucusu onları olduğu gibi barındırabilir veya başka bir yerde saklayabilir ve bunları sunmak için bir betik kullanabilir (örneğin, image.php? Id = xxx'). Her iki durumda da, evet, gerçek dosya adını DB'deki görüntünün kimliğine dönüştürün veya veritabanı girişlerini dosya sistemi girişleriyle eşlemek için başka bir yolla gel. – cdhowie

+0

@brad: Nadiren, gerçekte imajı kendisini db'de saklamak istiyor. jsut dosya sistemi üzerindeki yolu saklar. o zaman gidip görüntülediğinizde, o dosya sistemi yolunu görüntüye giden halka açık yola dönüştürün. – prodigitalson