sql >> Database >  >> RDS >> Mysql

Bestandspad van geüploade afbeelding opslaan in MySQL-database

Beveiligingsproblemen en verouderde extensie terzijde, alles wat u hoeft te doen is de bestandsnaam in de database in te voegen. Om dat te doen, voegt u een veld "bestandsnaam" toe aan uw database en past u uw invoegquery dienovereenkomstig aan:

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

Ook uw $uploaddir variabele leeg is, worden de bestanden waarschijnlijk op dit moment zelfs nergens opgeslagen. Probeer iets als dit om uw bestanden correct te verplaatsen:

$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";
}

Dit script gaat ervan uit dat je de geüploade inhoud vertrouwt en de md5-functie is gewoon een snelle en gemakkelijke manier om de naam van het bestand te "zuiveren" (als ik het zo mag noemen).




  1. MAAK TABEL reverse engineering in Oracle

  2. SELECTEER meerdere rijen WAAR die overeenkomen met twee voorwaarden

  3. Oracle PL/SQL:controleren of BLOB of CLOB leeg is

  4. T-SQL:Rond af op het dichtstbijzijnde interval van 15 minuten