Autor Zpráva
msigmund
Profil
Dobrý den.
Prosím o pomoc. Kontroluji před uploadem název souboru a nechci otravovat uživatele s přejmenováním, pokud už v db je.
Jak přidám k názvu obrázku pokud již je v db třeba datum.

@$test = mysql_num_rows(mysql_query("SELECT * FROM bazar WHERE obr = '$obr'"));
if ($test < 1){

foreach($_FILES as $File){
    if ($File['error']===UPLOAD_ERR_OK){
        if(move_uploaded_file($File['tmp_name'], "pic/".$File['name'])==FALSE){
            print'File '.$File['name'].' not uploaded. No space left on the device or insufficient privileges?';
        }else{
            print'File '.$File['name'].' successfully uploaded.';
        }
    }else{
        switch ($File['error']){
            case UPLOAD_ERR_INI_SIZE:
                print'The uploaded file exceeds the upload_max_filesize directive in "php.ini" .';
                break;
            case UPLOAD_ERR_FORM_SIZE:
                print'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.';
                break;
            case UPLOAD_ERR_PARTIAL:
                print'The uploaded file was only partially uploaded.';
                break;
            case UPLOAD_ERR_NO_FILE:
                print'No file was uploaded.';
                break;
            case UPLOAD_ERR_NO_TMP_DIR:
                print'Missing a temporary folder.';
                break;
            case UPLOAD_ERR_CANT_WRITE:
                print'Failed to write file to disk.';
                break;
            case UPLOAD_ERR_EXTENSION:
                print'File upload stopped by extension.';
                break;
            default:
                print'Unknown upload error.';
                break;
        }
    }
}

}
else {
echo "<div class=\"echo\">Obrázek se zadaným jménem je už v databázi. Přejmenujte ho prosím.</div>";
}



Děkuji všem za pomoc.
Lopata
Profil
celé to dělá funkce move_uploaded_file(). Jednoduše ji (v tomto kódu na řádku 6) do druhého parametru přidej cokoliv:
 if(move_uploaded_file($File['tmp_name'], "pic/".$File['name'].'_uplne_cokoliv_'.time())==FALSE){
msigmund
Profil
Díky, ale to mám uložit jako nazev-obrazku.gif_uplne_cokoliv_1261860979 to přece ani nejde.
Potřeboval bych "nazev-obrazku-1261860979.gif", ale nevím jak.
bossqo
Profil *
msigmund:
Najprv potrebuješ dostať z názvu súboru jeho typ. Takto by to mohlo fungovať:
$file = basename($File['name']);
$parse = explode(".", $file);
$suffix = end($parse);
	
array_pop($parse); 
$filename = implode(".", $parse);

takže potom ten kód bude vyzerať:
if(move_uploaded_file($File['tmp_name'], "pic/" . $filename . '_uplne_cokoliv_' . time()) . $suffix == FALSE){
msigmund
Profil
Díky, po menší úpravě vše funguje.
if(move_uploaded_file($File['tmp_name'], "pic/" . $filename . "-" .  time() . "." . $suffix) == FALSE){ 


Ještě jednou děkuji všem.

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: