Autor Zpráva
marek888
Profil
Dobrý večer. Chtěl bych udělat nahrávání obrázků na web a uložení adresy do databáze. Nahrávání a ukládání do databáze funguje. Akorát nahrávání do databáze přestane fungovat v ten okamžik, když se snažíte na web nahrát více jak 1 obrázek. To se do databáze nahraje pouze jméno posledního obrázku,který byl nahrán.
Napadlo mě, že by se to dalo vyřešit pomocí while, ale to mi pouze udělalo více záznamů se stejným názvem souboru.
Můj kód na nahrávání obrázků je takovýto:
if(isset($_POST['obrazky'])){
$uploadDir = './obrazky'; // adresar, kam se maji nahrat obrazky (bez lomitka na konci)
$allowedExt = array('jpg', 'jpeg', 'png', 'gif'); // pole s povolenymi priponami
 
// zpracovani uploadu
if(isset($_FILES['obrazky']) && is_array($_FILES['obrazky']['name'])) {
    $counter = 0;
    $allowedExt = array_flip($allowedExt);
    
    foreach($_FILES['obrazky']['name'] as $klic => $nazev) {
 
        $fileName = basename($nazev);
        $tmpName = $_FILES['obrazky']['tmp_name'][$klic];
        // kontrola souboru
        if(
            !is_uploaded_file($tmpName)
            || !isset($allowedExt[strtolower(pathinfo($fileName, PATHINFO_EXTENSION))])
        ) {
            // neplatny soubor nebo pripona
            continue;
        }
 
        // presun souboru
        if(move_uploaded_file($tmpName, "{$uploadDir}".DIRECTORY_SEPARATOR."{$fileName}")) {
            ++$counter;
        }
            
    }
A kód pro zapsání názvů obrázků do databáze:
if($counter > 0){
    echo "<p>Nahrálo se {$counter} z ".sizeof($_FILES['obrazky']['name'])." obrázků do ".($_POST['verze'])."</p>";
    echo "<img src='obrazky/$fileName'>";
    mysql_query("insert into mix (url) values('".mysql_real_escape_string($fileName)."')");
Všem děkuji za odpověď. Marek
Keeehi
Profil
mysql_query("insert into mix (url) values('".mysql_real_escape_string($fileName)."')");
nahraď řádek 25.
marek888
Profil
Keeehi:
Díky, to mě nenapadlo, asi jsem nad tím málo přemýšlel. Už mi to funguje, akorát pokaždé když je tam např žščř a tak podobně, tak mi to ten obrázek špatně zpracuje, nevím jak napsat kódování utf8 do té proměnné FileName

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: