Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Php
// Databázové poverenia
$ serverName ="localhost";
$ username ="username";
$ heslo ="heslo";
$ dbname ="myDatabase";
// Vytvorte pripojenie
$ conn =new mysqli ($ servername, $ username, $ heslo, $ dbname);
// Skontrolujte pripojenie
if ($ conn-> connect_error) {
die ("Connection zlyhal:". $ conn-> connect_error);
}
// Podrobnosti o nahraní súboru
$ target_dir ="uploads/";
$ target_file =$ target_dir. basename ($ _ Files ["FileTouPload"] ["name"]);
$ uploadok =1;
$ imageFileType =strtolower (pathinfo ($ target_file, pathinfo_extension));
// Skontrolujte, či je obrazový súbor skutočným obrázkom alebo falošným obrázkom
if (isset ($ _ post ["subsety"])) {
$ check =getImagesize ($ _ Files ["FileTouPload"] ["tmp_name"]);
if ($ check! ==false) {
Echo "Súbor je obrázok -". $ šek ["mime"]. ".";
$ uploadok =1;
} else {
echo "Súbor nie je obraz.";
$ uploadok =0;
}
}
// Skontrolujte, či už súbor existuje
if (file_exists ($ target_file)) {
echo "prepáčte, súbor už existuje.";
$ uploadok =0;
}
// Skontrolujte veľkosť súboru
if ($ _Files ["fileToupload"] ["size"]> 500000) {
Echo „Prepáčte, váš súbor je príliš veľký.“;
$ uploadok =0;
}
// Povoliť určité formáty súborov
if ($ imageFileType! ="jpg" &&$ imageFileType! ="png" &&$ imageFileType! ="jpeg"
&&$ imageFileType! ="gif") {
echo "prepáčte, sú povolené iba JPG, JPEG, PNG &GIF.";
$ uploadok =0;
}
// Skontrolujte, či je $ uploadok nastavený na 0 chybou
if ($ uploadok ==0) {
Echo „Prepáčte, váš súbor nebol nahraný“;
// Ak je všetko v poriadku, skúste nahrať súbor
} else {
if (move_uploaded_file ($ _ files ["filotUPload"] ["tmp_name"], $ target_file)) {
echo "The File". basename ($ _Files ["FileTouPload"] ["name"]). „bol nahraný.“;
// Vložte podrobnosti súboru do databázy
$ filename =basename ($ _ Files ["FileTouPload"] ["name"]);
$ file_path =$ target_file;
$ sql ="Vložte do súborov (filename, file_path) hodnoty ('$ filename', '$ file_path')";
if ($ conn-> query ($ sql) ===true) {
Echo „Nový záznam sa úspešne vytvoril“;
} else {
Echo "Chyba:". $ sql. „
". $ conn-> chyba;
}
} else {
Echo „Prepáčte, došlo k chybe, ktorý odovzdal váš súbor.“;
}
}
$ conn-> close ();
?>
`` `
Vysvetlenie:
1. Nastavenie databázy:
- Vytvorte pripojenie k vašej databáze MySQL pomocou rozšírenia `mysqli`.
- Vymeňte zástupné symboly ako „UserName“, `Password` a` myDatabase` svojimi skutočnými povereniami databázy.
2. Manipulácia s odovzdaním súboru:
- Na prístup k nahranému súboru použite Superglobal Array `$ _Files`.
- Nastavte cieľový adresár (`$ target_dir`), kde bude súbor uložený.
- Vykonajte základnú validáciu:
- Skontrolujte, či je nahraný súbor skutočný obrázok (pomocou `getImagesize`).
- Skontrolujte, či súbor už existuje v cieľovom adresári.
- Skontrolujte, či je veľkosť súboru v rámci povolených limitov.
- Povoliť iba určité formáty súborov (napr. JPG, PNG, GIF).
3. Ukladanie súborov:
- Ak overenie prechádza, použite „move_uploaded_file` na presunutím dočasného odovzdaného súboru do cieľového adresára.
4. Databázové vkladanie:
- Po úspešnom uložení súboru pripravte dotaz SQL na vloženie informácií o súbore do vašej databázy.
- To zvyčajne obsahuje názov súboru a cestu k súboru.
- Na vykonanie dotazu SQL použite metódu `$ conn-> query`.
Dôležité poznámky:
- Zabezpečenie: Vždy overte vstup používateľa a nahrávanie súborov, aby ste zabránili zabezpečeniu zabezpečenia, ako sú útoky XSS alebo vstrekovanie súborov.
- Databázová tabuľka: Uistite sa, že máte vhodnú databázovú tabuľku na ukladanie informácií o súboroch (napr. Tabuľka `Files` so stĺpcmi ako` filename`, `file_path`,` file_size` atď.).
- Manipulácia s chybami: Zvládajte potenciálne chyby počas odovzdávania súborov a vkladania databázy. Zobraziť príslušné správy používateľovi.
- Limity veľkosti súboru: Zvážte nastavenie vhodných limitov veľkosti súboru, aby ste zabránili preťaženiu servera.
- Typy súborov: Na základe požiadaviek vašej aplikácie môžete upraviť povolené typy súborov.
- dezinfekcia údajov: Pred uložením v databáze dezinfikujte názov súboru a ďalšie údaje, aby ste zabránili injekčným útokom SQL.
- veľké súbory: Na spracovanie veľkých súborov zvážte použitie techník, ako je chunking alebo streamovanie nahrávania.
Nezabudnite prispôsobiť tento útržok kódu na vašu konkrétnu databázovú schému a požiadavky na nahrávanie súborov.