Kullanıcı Tarafından Gönderilen Dosyaları MySQL Veritabanında Saklama

Bazen web sitesi kullanıcılarınızdan veri toplamak ve bu bilgileri bir MySQL veri tabanı. Zaten kullanarak bir veritabanını doldurabileceğinizi gördük PHP, artık verilerin kullanıcı dostu bir web formu aracılığıyla eklenmesine izin verme pratikliğini ekleyeceğiz.

Ardından, formumuzun verilerini gönderdiği process.php dosyasını yapmanız gerekir. MySQL veritabanına göndermek için bu verilerin nasıl toplanacağına dair bir örnek:

Tabii ki, denemeden önce tablonun gerçekten var olduğundan emin olmalıyız. Bu kodun yürütülmesi, örnek dosyalarımızla kullanılabilecek bir tablo oluşturmalıdır:

Artık kullanıcı verilerini MySQL'de nasıl saklayacağınızı biliyorsunuz, bu yüzden bir adım daha ileri götürelim ve depolama için bir dosyanın nasıl yükleneceğini öğrenelim. İlk olarak, örnek veritabanımızı yapalım:

Dikkat etmeniz gereken ilk şey, İD ayarlanmış OTOMATİK ARTIŞ. Ne bu veri tipi bunun anlamı her dosyaya 1'den başlayarak 9999'a kadar benzersiz bir dosya kimliği atamaktır (4 basamak belirttiğimiz için). Ayrıca veri alanımızın çağrıldığını da fark edeceksiniz

instagram viewer
LONGBLOB. Daha önce de belirttiğimiz gibi birçok BLOB türü vardır. TINYBLOB, BLOB, MEDIUMBLOB ve LONGBLOB seçeneklerinizdir, ancak mümkün olan en büyük dosyalara izin vermek için bizimki LONGBLOB olarak ayarladık.

Daha sonra, kullanıcının dosyasını yüklemesine izin vermek için bir form oluşturacağız. Bu sadece basit bir form, tabii ki, istersen giyinebilirsin:

Ardından, kullanıcılarımızın dosyasını alıp veritabanımızda saklayacak upload.php dosyasını oluşturmamız gerekiyor. Upload.php için örnek kodlama aşağıdadır.

Sonra, addslashes işlevi. Bu, veritabanını sorguladığımızda bir hata almayacağımız için gerekirse dosya adına ters eğik çizgi eklemektir. Örneğin, Billy'sFile.gif varsa, bunu Billy'sFile.gif'e dönüştürür. FOPEN dosyayı açar ve fread bir ikili güvenli dosya okumak böylece addslashes gerekiyorsa dosya içindeki verilere uygulanır.

Ardından, formumuzun topladığı tüm bilgileri veritabanımıza ekliyoruz. Önce alanları listelediğimizi ve ikinci değerleri gördüğümüze göre, yanlışlıkla ilk alanımıza (otomatik atama kimliği alanı) veri eklemeyi denemiyoruz.

Nasıl alacağımızı zaten öğrendik düz veri MySQL veritabanımızdan. Aynı şekilde, dosyalarınızı bir MySQL veritabanında saklamak, onları almanın bir yolu olmasaydı çok pratik olmazdı. Bunu yapmayı öğreneceğimiz yol, her dosyaya kimlik numaralarına göre bir URL atamaktır. Dosyaları ne zaman yüklediğimizi hatırlayacaksanız, her dosyaya otomatik olarak bir kimlik numarası verdik. Dosyaları geri çağırdığımızda bunu kullanacağız. Bu kodu download.php olarak kaydedin

Şimdi dosyamızı almak için tarayıcımızı şuna yönlendiriyoruz: http://www.yoursite.com/download.php? id = 2 (2'yi indirmek / görüntülemek istediğiniz dosya kimliğiyle değiştirin)

Bu kod, birçok şeyi yapmanın temelidir. Bunu temel alarak, dosyaları listeleyecek bir veritabanı sorgusu ekleyebilir ve insanların seçmesi için bir açılır menüye koyabilirsiniz. Ya da kimliği rastgele bir sayı olacak şekilde ayarlayabilirsiniz, böylece bir kişi her ziyaret ettiğinde veritabanınızdan farklı bir grafik rastgele görüntülenir. İmkanlar sonsuzdur.

Dosyaları indiren önceki kodumuz gibi, bu komut dosyası da yalnızca URL'lerini yazarak dosyaların kaldırılmasına izin verir: http://yoursite.com/remove.php? id = 2 (2'yi kaldırmak istediğiniz kimliğinizle değiştirin.) Açık nedenlerden dolayı, bu koda dikkat et. Bu elbette gösteri içindir, aslında uygulamalar oluşturduğumuzda, kullanıcıya silmek istediklerinden emin olup olmadıklarını sorun veya belki sadece şifreli kişilerin dosyaları kaldırmasına izin verin. Bu basit kod, tüm bunları yapmak için geliştireceğimiz temeldir.