Autor | Zpráva | ||
---|---|---|---|
kachnak Profil |
#1 · Zasláno: 28. 3. 2012, 20:01:51
Zdravím, našiel som na nete funkciu ktorá by mala vedieť nahrať viac fotiek za sebou na server.
Neviem prečo mi ale nefunguje príkaz move_uploaded_file na konci kódu. Treba to nahrať nejakou inou funkciou? Ďakujem <div>Upload Files: <input type="file" name="filesToUpload" id="filesToUpload" multiple="" onChange="makeFileList();" /></div> <div>Files You Selected:</div> <div> <ul id="fileList"><li>No Files Selected</li></ul> <script type="text/javascript"> function makeFileList() { var input = document.getElementById("filesToUpload"); var ul = document.getElementById("fileList"); while (ul.hasChildNodes()) { ul.removeChild(ul.firstChild); } for (var i = 0; i < input.files.length; i++) { var li = document.createElement("li"); li.innerHTML = input.files[i].name; ul.appendChild(li); } if(!ul.hasChildNodes()) { var li = document.createElement("li"); li.innerHTML = 'No Files Selected'; ul.appendChild(li); } } </script> </div> <? if(count($_FILES['uploads']['filesToUpload'])) { foreach ($_FILES['uploads']['filesToUpload'] as $file) { //do your upload stuff here $name="1.jpg"; move_uploaded_file($file,$name); echo $file; } } ?> |
||
suvel Profil |
#2 · Zasláno: 28. 3. 2012, 20:35:56
Jak nefunguje? Leda by na serveru běželo php starší než 4.0.3
|
||
kachnak Profil |
#3 · Zasláno: 28. 3. 2012, 20:54:36
ten riadok
if(count($_FILES['uploads']['filesToUpload'])) možno preto sa nedostane k tomu uploadu. |
||
Alphard Profil |
Pěkná ukázka multiple v html5.
<?php $inputName = 'filesToUpload'; # name inputu v html formuláři $filename = "files"; # název adresáře, kam se ukládají fotky, měl by existovat a mít nastavená přistupová práva if (count($_FILES[$inputName]['tmp_name']) > 0) { foreach ($_FILES[$inputName]['tmp_name'] as $k => $file) { # demonstračně, ukládat soubory pod původním názvem není bezpečné move_uploaded_file($file,"$filename/".$_FILES[$inputName]['name'][$k]); } header("location:index.php"); # jméno souboru si upravte } ?> <form action="index.php" method="post" enctype="multipart/form-data"> <div>Upload Files: <input type="file" name="filesToUpload[]" id="filesToUpload" multiple="" onChange="makeFileList();" /></div> <div>Files You Selected:</div> <div> <ul id="fileList"><li>No Files Selected</li></ul> <script type="text/javascript"> function makeFileList() { var input = document.getElementById("filesToUpload"); var ul = document.getElementById("fileList"); while (ul.hasChildNodes()) { ul.removeChild(ul.firstChild); } for (var i = 0; i < input.files.length; i++) { var li = document.createElement("li"); li.innerHTML = input.files[i].name; ul.appendChild(li); } if(!ul.hasChildNodes()) { var li = document.createElement("li"); li.innerHTML = 'No Files Selected'; ul.appendChild(li); } } </script> </div> <input type="submit"> </form> |
||
kachnak Profil |
|||
Alphard Profil |
Jo, omlouvám se. Já to pak ještě upravoval zpaměti. Ale taky vás to mohlo napadnout :-)
if (count($_FILES['filesToUpload']['tmp_name']) > 0) { foreach ($_FILES['filesToUpload']['tmp_name'] as $k => $file) { move_uploaded_file($file,"files2/".$_FILES[$inputName]['name'][$k]); } header("location:index.php"); } Ono i když jsem zavedl ty nové proměnné, tak by se měly použít <?php $inputName = 'filesToUpload'; $filename = "files"; if (count($_FILES[$inputName]['tmp_name']) > 0) { foreach ($_FILES[$inputName]['tmp_name'] as $k => $file) { move_uploaded_file($file,"$filename/".$_FILES[$inputName]['name'][$k]); } header("location:index.php"); } ?> |
||
kachnak Profil |
#7 · Zasláno: 29. 3. 2012, 08:40:39
Paráda fičí mi to :) konečne som zohnal niečo neflashové.
Len na niektorých prehliadačoch to nefunguje ten <input type=file ... , že sa dá vybrať len jeden súbor. napr v IE6, IE8. To sa dá obísť len cez flash? |
||
abc Profil |
#8 · Zasláno: 29. 3. 2012, 18:48:20
kachnak:
Je to HTML5 fičura. IE6, IE8 HTML5 neumí/jen okrajově. Nahrát víc souborů najednou lze i pomocí JS, např. Odkaz Nebo třeba více inputama: <input type="file" name="prilohy[]" size="50"/> <input type="file" name="prilohy[]" size="50"/> <input type="file" name="prilohy[]" size="50"/> |
||
Časová prodleva: 8 měsíců
|
|||
kuba95 Profil |
#9 · Zasláno: 28. 11. 2012, 17:21:38
Zdravím,
zkoušel jsem váš script, ale když nahraji soubory, tak se mi na ftp nezobrazí a já nevím kde jsou... Mohli byste mi poradit, kde je mám hledat? |
||
Davex Profil |
#10 · Zasláno: 28. 11. 2012, 19:10:43
V podadresáři
files . Pokud tam takový adresář není, tak se musí nejdřív vytvořit, případně mu nastavit práva 0777. Jinak by bylo dobré skript zabezpečit, aby nedovolil nahrání jakéhokoliv souboru (např. PHP skriptu).
|
||
abc Profil |
kuba95:
Jsi si jist, zda se nahrajou? Jak vypadá řádek, na kterém voláš funkci move_uploaded_file(); ?
Podívej se do složky temp/tmp/files, jestli se tam něco nahraje |
||
kuba95 Profil |
#12 · Zasláno: 28. 11. 2012, 21:15:54
Ok, jsou tam v adresáři files. Díky moc
|
||
Časová prodleva: 12 let
|
0