Autor Zpráva
LukasCZ
Profil
Pomůžete mi upravit tento script, aby se vkládali jen obrázky (JPG, GIF a PNG) a potom si nevím rady jak přejmenovat výsledný sobor, který se tam nakopíruje. Aby každý uživatel měl fotku pod svým číslem.

if (is_uploaded_file($_FILES["soubor"]["tmp_name"]))
: $name = $_FILES["soubor"]["name"];
copy($_FILES["soubor"]["tmp_name"], "./uzivatel/$name"); endif; ?>

<table cellpadding='0' cellspacing='0' brder='0' align='center' width='990' bgcolor='FFFFFF'>
<tr><td bgcolor='D2E9FF'>NAHRÁNÍ FOTOGRAFIE<br><br>
<form method="post" enctype="multipart/form-data"> Uploadovaný soubor: <input type="file" name="soubor">
<input type=hidden name="odeslano" value="true">
<input type="submit" value="Uploadovat"> </form>
</td></tr></table>
OBr
Profil
Já na to používám tenhle kód. Mám dojem že je to z knihy [url=http://knihy.cpress.cz/Book.asp?ID=677]
PHP pro úplné začátečníky [/url], jen jsem to poupravil.

<?
$povolene_typy = array("image/gif","image/jpeg","image/jpeg");


if( isset( $soubor ) )
{
if($soubor!="" && $send)
{
if (in_array($soubor_type,$povolene_typy))
{
move_uploaded_file($soubor,"images/upload/".$soubor_name);
}
else
{
echo "Obrázky jsou přijímány pouze ve formátech GIF, JPG. Tento soubor je typu " . $soubor_type;
}
}
}
else
{
?>
<form method="post" action="file-upload.php" enctype="multipart/form-data">
<div>
<input type="hidden" name="send" value="true" />
<input type="file" name="soubor" value="" />
<input type="submit" value="Odeslat" />
</div>
</form>
<?
}
?>
Paja a jaja
Profil *
OBr,LukasCZ
s tim, že si samozřejmě do formuláře můžeš přidat:
<input type="text" name="soubor_name" />

kde si uživatel zadá to svoje číslo nebo jak to bylo..
LukasCZ
Profil
<input type="text" name="soubor_name" /> to sice změní ten soubor, ale nepřidá to koncovku...
Hugo
Profil
Na přejmenování souboru stačí změnit druhý argument ve funkci copy() (ale je lepší použít fci move_uploaded_file()).
LukasCZ
Profil
hugo, můžeš uvést příklad. Chápu, že tam mohu přidat něco před ten název, třeba nějaký číslo, ale když změním celou proměnou, tak mi zmizí koncovka...

move_uploaded_file($soubor,"images/upload/".$soubor_name);
LukasCZ
Profil
a nevíte ještě v čem bude problém. se mi to uploaduje, i třeba se stejným názvem, ale z ftp mi to pak už nejde překopírovat zpět do počítače (jako přímo z adresáře do adresáře, píše to Během kopírování souboru došlo k chybě), ale doma na Apachi to jde...
Hugo
Profil
LukasCZ

No, to totiž musíš nejdřív tu původní koncovku uložit do proměnné a pak ji tam znovu vložit:
move_uploaded_file($soubor,"images/upload/".$soubor_name.'.$ext');

Kopírovat ti to nejde kvůli špatně nastaveným právům. Musíš mít u toho souboru povolené čtení (apache server je pravděpodobně v jiné skupině než ty, takže dej pozor komu ty práva nastavuješ).
LukasCZ
Profil
ale nejde to jen při kopírování z adresáře (jak přes windows tak i přes total commader to nejde), když si ten soubor chci zobrazit přes prohlížeč, tak tam normálně jde...
Hugo
Profil
Asi máš práva na čtení v adresáři (zobrazí se ti jeho obsah), ale nemáš práva na čtení u souboru.
LukasCZ
Profil
a poslední dotaz :) jak zjistím tu koncovku ze soboru, jak dostanu tu $ext ?
Hugo
Profil
Podívej se na funkci pathinfo().
LukasCZ
Profil
takže je to takhle (uploaduje to soubor, dá tomu jméno dle $user a přidá původní koncovku):

$path_parts = pathinfo($soubor_name);
$user='21';
.
.
.
if (move_uploaded_file($soubor,"images/upload/$user.".$path_parts['extens ion']))
Toto téma je uzamčeno. Odpověď nelze zaslat.

0