Autor Zpráva
miras
Profil
Stáhnul jsem si upload souborů,vyplnil mé požadavky a hodil to na web.Přes formulář jsem tam chtěl nahrát obrázek a zobrazila se mi tam hláška Soubor byl úspěšně skopírovaný.Ale v adresáři kam se to mělo skopírovat nic není.Co tam mám za chybu?
Script stažený z www.vseproweb.com:

<HTML>
<HEAD>
<TITLE>Upload souboru</TITLE>
</HEAD>
<BODY>

<?

if ($akce==upload)
{
$datum = Date("j.n.Y");
$cas = Date("H:i:s");

$warsize=500000;
$maxsize=1000000;
$ms=$maxsize/1000;
$ws=$warsize/1000;
$ok=1;
$adresar="upload/"; // sem by se to mělo kopírovat
$email="walkmanphones@seznam.cz";

if($soubor)
{
$s=$adresar.$soubor_name;
if($soubor_size>$maxsize)
{
printf("CHYBA: Soubor <strong>$soubor_name</strong> má větší
velikost než stanovená maximální velikost souboru, která činí $ms kB.");

$ok=0;
}
else if($soubor_size>$warsize)
printf("UPOZORNĚNÍ: Soubor <strong>$soubor_name</strong> má větší
než doporučenou velikost. Doporučená velikost je $ws kB.");

clearstatcache();
if($ok&&file_exists($s))
{
printf("CHYBA: Soubor <strong>$soubor_name</strong> již extuje, proto nemohl být znova uložen.");

$ok=0;
}
if ($ok)
{
if(!(copy($soubor,$s)))
printf("CHYBA: Soubor <strong>$soubor_name</strong> nemohl být zkopírován. Kontaktujte správce.");

else {
chmod($s,0644);
printf("Soubor <strong>$soubor_name</strong> byl úspěšně uložen.");

}
}
}

$text.="Na server byl nahran soubor ".$soubor_name.".";

mail($email,"Upload",$text,"From: ".$email);
}

?>


<FORM ACTION="upload.php" METHOD="post" ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="soubor" SIZE="30">
<INPUT TYPE="submit" NAME="akce" VALUE="Přidat soubor">
</FORM>

</BODY>
</HTML>


Mám to dobře?
djlj
Profil
Asi špatně nastavená práva pro zápis do složky.

Mám to dobře?
Všichni hned žhavíme pspady a zkoušíme tvůj kód ;).
miras
Profil
Myslíš třeba špatné atributy?? skusím 777
djlj
Profil
miras
Přesně tak.
miras
Profil
tak ani ty atributy nepomohly..ne a ne se to tam ukázat..skuste něco nahrát já se zejtra podívám jestli to tam je - odkaz zde
djlj
Profil
miras
No celej ten kód je nějakej divnej.

Zkus si tam místo if(!(copy($soubor,$s))) dát if(!copy($soubor,$s))
minimal
Profil *
Upload na baze funkcii "is_uploaded_file()" a "move_uploaded_file()"

<?php
$upload_path='';//nejaky adresar chmod 0777
$overwrite='';//'ok'
$max_upload_file_size=1000000;// 1MB
$chmod=0777;

if(!empty($_FILES['file']['name']))
{
$submited_filename=$_FILES['file']['tmp_name'];
$target_filename=$_FILES['file']['name'];
$file_size=$_FILES['file']['size'];
$file_error=$_FILES['file']['error'];
$file_type=$_FILES['file']['type'];

if($file_size<$max_upload_file_size)
{
$path_info=pathinfo($target_filename);
$dot=strrpos($path_info['basename'],".");
if($dot){$name=substr($path_info['basename'],0,$dot);}
$new_filename=$upload_path.$target_filename;

# Nastavenie mena suboru ak taky subor uz existuje ak je overwrite 'ok' tak iba message
if((file_exists($new_filename))&&($overwrite=='ok'))
{
$action_message[]=' File "'.$target_filename.'" will be owerwrited.';
}
elseif((file_exists($new_filename))&&($overwrite!='ok'))
{
$suffix=1;
while(file_exists($new_filename))
{
$new_filename=$upload_path.$name.'['.$suffix.'].'.$path_info['exte nsion'];
$suffix++;
}
$path_info=pathinfo($new_filename);
$action_message[]=' File "'.$target_filename.'" was renamed to "'.$path_info['basename'].'".';
}

$path_info=pathinfo($new_filename);

# Samotny upload
if(@is_uploaded_file($submited_filename))
{
if(@move_uploaded_file($submited_filename,$new_filename))
{
$action_message[]=' File "'.$path_info['basename'].'" was successfully uploaded.';//copy($submited_file, $target_file)
if(isset($chmod))
{
if(@chmod($new_filename,$chmod)==false){$action_message[]=' Change mode to chmod "0'.decoct($chmod).'" failed.';}
else{$action_message[]=' Change chmod mode to "0'.decoct($chmod).'" successful.';}
}
else{$action_message[]=' Chmod mode is not set.';}
}
else{$action_message[]=' Transmission error "'.$file_error.'". File "'.$path_info['basename'].'" was not successfully uploaded.';}
}
else{$action_message[]=' Transmission error "'.$file_error.'". File "'.$path_info['basename'].'" was not successfully uploaded.';}
}
else{$action_message[]=' Transmission error. File "'.$target_filename.'" was not successfully uploaded. File biger "'.$file_size.'" than size limit "'.$max_upload_file_size.'". ';}
}
else{$action_message[]=' Transmission error "'.$file_error.'". File not found or file input has name diferent as "file".';}
?>

adamico
Profil
prečo sa mi nič nezobrazi ? a kde sa zadáva ten chmod v adresáry ?
krteczek
Profil
adamico:podle toho jak to máš napsané předpokládám OPĚT, že jsou VYPLÉ REGISTER_GLOBALS (což je správně), takže musíš používat pole $_GET, $_POST, $_FILE, atd.
krteczek
Honzin
Profil *
to minimal:
hezkej skriptík, chybí mi input a výpis chybových hlášení
RadekCZ
Profil *
Vzdy kdys najedu na svem webu do novinek a dam pridat novinky a kdys chci k tomu prihodit obrazek tak se mi neukaze mam web pres webspell.Vim ze by to melo byt neco se slozkou Images a le co?Jaky slozky mam zmenit na Chomd 777 a jaky na Chomd jiyn proste jen rekni co mam zm,enit a co ne a na co PLS.
Zasláno: 3.8.2007 23:11:05Citovat
Prosim dyztak pisnete na ICQ 345860114 Prosim.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0