Autor Zpráva
gardener
Profil
Zdravim,
chtěl bych se zeptat, kde by mohla být chyba při uploadu pomocí foreach[nazvy souboru nacitam v poli], viz:

foreach ($_FILES['files_names']['name'] as $file_name) {

            $cesta = "attachments/"; //nami definovana cesta
            if (!move_uploaded_file($file_name, $cesta.$file_name))
                throw new Exception("Doslo k chybe pri kopirovani clanku");
            else
                echo "Upload: ".$file_name."<br />";
        }


fci is_uploaded_file jsem vynechal, jelikoz jsem s ni mel na LH problemy a při použití pole $_FILES prý není nutné tyto funkce používat, protože PHP za původ dat v tomto poli ručí.

Díky za každou radu
Alphard
Profil
Máte jednotlivé input type="file" pojmenované name="files_names[]"?
Přístup k souborům je přes klíč tmp_name, viz http://cz2.php.net/manual/en/features.file-upload.multiple.php
gardener
Profil
Ne, mám jenom jeden FILE INPUT
<input name="files_names[]"id="soubor" type="file" class="multi"/>

hodnoty ukládám pomocí JQuery a poté jsem myslel, že je to jednoduše zpracuji foreachem

Pokud jsem zkousel:
$_FILES['files_names']['tmp_name'][$key]
, kde $key byla ciselna hodnota v poli, ziskana pomoci count a inkrementovana, tak jsem dostal hlasku o nedefinovanem indexu..
gardener
Profil
Tak jsem to udělal nakonec takto ale pro změnu mi nejde kontrolovat korerktně velikost uploadu ani koncovka..
Jak by se to dalo vyřešit?
<input name="files_names[]"id="soubor" type="file" class="multi"/>
<input type="submit" value="Send" />
</p>
</form>
<?php

foreach ($_FILES["files_names"]["error"] as $key => $error) {
   if ($error == UPLOAD_ERR_OK) {
       echo"$error_codes[$error]";
	   if($_FILES["files_names"]["size"][$key]>20000)
	   die ("chyba");
       move_uploaded_file(
         $_FILES["files_names"]["tmp_name"][$key],
         $_FILES["files_names"]["name"][$key]
       ) or die("Problems with upload");
   }
}
?>

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: