| 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: 13 let
|
|||
0
