Autor | Zpráva | ||
---|---|---|---|
LukasCZ Profil |
#1 · Zasláno: 12. 12. 2005, 16:06:59
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 |
#2 · Zasláno: 12. 12. 2005, 19:11:21
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.
|
||
Paja a jaja Profil * |
#3 · Zasláno: 12. 12. 2005, 19:22:46
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 |
#4 · Zasláno: 13. 12. 2005, 09:15:59
<input type="text" name="soubor_name" /> to sice změní ten soubor, ale nepřidá to koncovku...
|
||
Hugo Profil |
#5 · Zasláno: 13. 12. 2005, 09:19:41
Na přejmenování souboru stačí změnit druhý argument ve funkci copy() (ale je lepší použít fci move_uploaded_file()).
|
||
LukasCZ Profil |
#6 · Zasláno: 13. 12. 2005, 09:33:53
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 |
#7 · Zasláno: 13. 12. 2005, 09:37:19
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 |
#8 · Zasláno: 13. 12. 2005, 09:47:25
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 |
#9 · Zasláno: 13. 12. 2005, 09:49:26
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 |
#10 · Zasláno: 13. 12. 2005, 09:52:16
Asi máš práva na čtení v adresáři (zobrazí se ti jeho obsah), ale nemáš práva na čtení u souboru.
|
||
LukasCZ Profil |
#11 · Zasláno: 13. 12. 2005, 09:59:25
a poslední dotaz :) jak zjistím tu koncovku ze soboru, jak dostanu tu $ext ?
|
||
Hugo Profil |
#12 · Zasláno: 13. 12. 2005, 10:13:19
Podívej se na funkci pathinfo().
|
||
LukasCZ Profil |
#13 · Zasláno: 13. 12. 2005, 10:35:21
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'])) |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0