sql >> Database teknologi >  >> RDS >> Mysql

Gemmer filstien til det uploadede billede til MySQL-databasen

Sikkerhedsproblemer og udfaset udvidelse til side, alt hvad du skal gøre er at indsætte filnavnet i databasen. For at gøre det skal du tilføje et "filnavn"-felt til din database og derefter justere din indsættelsesforespørgsel i overensstemmelse hermed:

INSERT INTO products (name, description, price_low, price_high, filename)
              VALUES (:name, :desc, :price_low, :price_high, :filename)

Også din $uploaddir variabel er tom, filerne bliver sandsynligvis ikke engang gemt nogen steder i øjeblikket. For at flytte dine filer korrekt, prøv noget som dette:

$uploaddir = '/path/where/you/can/save/';
$rawFilename = $_FILES['userfile']['name'];
$extension = pathinfo($rawFilename, PATHINFO_EXTENSION);

$uploadfile = $uploaddir . md5($rawFilename) . '.' . $extension;

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Upload failed";
}

Dette script antager, at du har tillid til det uploadede indhold, og md5-funktionen er bare en hurtig og nem måde at "sanere" (hvis jeg kan kalde det det) filens navn på.




  1. Laravel Veltalende forespørgsel JSON kolonne med Where In?

  2. Sådan finder du kolonnen brugt i den dynamiske forespørgsel uden at udføre hele forespørgslen

  3. Kritér mit MySQL-databasedesign til ubegrænsede DYNAMISKE felter

  4. opdater flere poster i flere indlejrede tabeller i Oracle