Stocarea fișierelor trimise de utilizator într-o bază de date MySQL

Uneori este util să colectați date de la utilizatorii site-ului dvs. web și să stocați aceste informații într-un MySQL Bază de date. Am văzut deja că puteți popula o bază de date folosind PHP, acum vom adăuga practicitatea de a permite adăugarea datelor printr-un formular web ușor de utilizat.

În continuare, trebuie să faceți process.php, pagina la care formularul nostru trimite datele sale. Iată un exemplu despre cum să colectați aceste date pentru a fi postate în baza de date MySQL:

Desigur, înainte de a-l încerca trebuie să ne asigurăm că tabelul există de fapt. Executarea acestui cod ar trebui să creeze un tabel care poate fi utilizat cu fișierele noastre de probă:

Acum știți cum să stocați datele utilizatorului în MySQL, așadar să facem un pas mai departe și să învățăm cum să încărcați un fișier pentru stocare. În primul rând, să facem baza noastră de date de eșantion:

Primul lucru pe care ar trebui să îl observați este un câmp numit id care este setat la INCREMENT AUTO. Ce acest tip de date

instagram viewer
înseamnă că va conta până la alocarea fiecărui fișier un ID de fișier unic începând de la 1 și mergând la 9999 (din moment ce am specificat 4 cifre). De asemenea, probabil veți observa că câmpul nostru de date este apelat LONGBLOB. Există multe tipuri de BLOB cum am menționat anterior. TINYBLOB, BLOB, MEDIUMBLOB și LONGBLOB sunt opțiunile dvs., dar noi le setăm pe LONGBLOB pentru a permite cele mai mari fișiere posibile.

În continuare, vom crea un formular care să permită utilizatorului să-și încarce fișierul. Aceasta este doar o formă simplă, evident, ai putea să o îmbraci dacă vrei:

În continuare, trebuie să creăm efectiv upload.php, care va lua fișierul utilizatorilor noștri și îl va stoca în baza noastră de date. Mai jos este o mostră de codificare pentru upload.php.

În continuare, folosește addslashes funcţie. Ceea ce face acest lucru este să adăugați retrospective, dacă este necesar, în numele fișierului, pentru a nu primi o eroare atunci când interogăm baza de date. De exemplu, dacă avem BillyFile.gif, acesta va converti acest lucru în BillyFile.gif. fopen deschide fișierul și fread este un fișier binar sigur citit astfel încât addslashes se aplică la datele din fișier, dacă este necesar.

În continuare, adăugăm toate informațiile colectate în baza noastră de date. Veți observa că am enumerat câmpurile în primul rând și valorile în al doilea rând, astfel încât nu încercăm din greșeală să introducem date în primul nostru câmp (câmpul de identificare automată de atribuire.)

Am învățat deja cum să recuperăm date simple din baza noastră de date MySQL. De asemenea, stocarea fișierelor într-o bază de date MySQL nu ar fi foarte practică dacă nu ar exista o modalitate de a le prelua. Modul în care vom învăța să facem acest lucru este prin atribuirea fiecărui fișier a unei adrese URL pe baza numărului lor de identificare. Dacă vă veți reaminti când am încărcat fișierele, am atribuit automat fiecărui fișier un număr de identificare. Vom folosi acest lucru atunci când vom reveni la fișiere. Salvați acest cod ca download.php

Acum pentru a prelua fișierul nostru, indicăm browserul nostru către: http://www.yoursite.com/download.php? id = 2 (înlocuiți 2 cu orice ID de fișier pe care doriți să îl descărcați / să îl afișați)

Acest cod este baza pentru a face o mulțime de lucruri. Cu această bază, puteți adăuga o interogare în baza de date care ar enumera fișierele și le puteți pune într-un meniu derulant pentru ca oamenii să aleagă. Sau puteți seta ID-ul ca un număr creat la întâmplare, astfel încât o grafică diferită din baza de date să fie afișată la întâmplare de fiecare dată când o persoană vizitează. Posibilitățile sunt nesfârșite.

Ca și codul nostru anterior care a descărcat fișierele, acest script permite eliminarea fișierelor doar tastând URL-ul lor: http://yoursite.com/remove.php? id = 2 (înlocuiți 2 cu ID-ul pe care doriți să îl eliminați.) Din motive evidente, doriți să fii atent cu acest cod. Acest lucru este desigur pentru demonstrație, atunci când vom construi de fapt aplicații pe care le vom dori să le asigurăm întrebați utilizatorul dacă sunt siguri că vor să șteargă, sau poate să permită persoanelor cu parolă să elimine fișierele. Acest cod simplu este baza pe care ne vom construi pentru a face toate aceste lucruri.