prosim o radu. Vytvarim formular, jehoz pomoci potrebuji umistit na server soubor.
Mam dva soubory (pro prehlednost napisi jen tu cast)
Formular: Zde je klasicky formular v nem moznost
<input type=file size=35 name="jmeno_souboru">
druhy soubor: Send (funkce na ulozeni)
if (copy($jmeno_souboru, "temp/$jmeno_souboru_name"))
{
echo "<br>Hotovo.";
echo "Soubor $jmeno_souboru_name byl zkopírován.<br>";
//unlink ($jmeno_souboru);
} else {echo "Chyba pri kopirovani souboru.";}
tento skript mi soubor nechce ulozit a porad to ukazuje chybu. Poradte prosim jak to vyresit.
Dekuji
1. Nenapsal jsi JAKOU chybu ti to hází
2. Na první pohled mě zaujalo:
- copy je na WZ zakázáno
- copy se na toto nepoužívá. K přesunu nahraného souboru se používá příkaz move_uploaded_file:
http://cz.php.net/manual/cs/function.move-uploaded-file.php
- nevím, co máš v proměnné $jmeno_souboru, ale obvykle se používá něco takového:
if (move_uploaded_file($_FILES['jmeno_souboru']['tmp_name'], "temp/$jmeno_souboru_name"))
>nevím, co máš v proměnné $jmeno_souboru
pri zapnutych register_globals je mozne pouzit tuto promennou (a z ni odvozene) ve stejnem kontextu jako superglobalni $_FILES.
Predpokladam, ze formular zacina takto:
<form enctype="multipart/form-data" action="TVOJE_URL" method="post">
...
<input type="file" name="jmeno_souboru">
...
</form>
Nakonec, lepsi by bylo pouzit pole $_FILES:
<?php
if (move_uploaded_file($_FILES['jmeno_souboru']['tmp_name'], "temp/".$_FILES['jmeno_souboru']['name']))
echo "<br>Hotovo. Soubor ".$_FILES['jmeno_souboru']['name']." byl zkopírován.<br>";
else echo "Chyba pri kopirovani souboru.";
?>
Jo to ja vím, ale spoléhat na zapnuté register_globals je riskantní a v budoucnu se může vymstít při přenosu skriptu na jiný server.