Autor | Zpráva | ||
---|---|---|---|
Vilak Profil |
Zdarec borci!
Mám tu takové menší problémy, se kterými si prostě nedokážu poradit, pomohli byste? Mám sepsaný script pro upload souboru (jednoho), ale chci, aby šlo nahrávat více souborů současně, takže aby šlo nahrát třeba 5 souborů najednou (různého typu - videa, hudba, text, obrázek), mám napsaný script pro upload jednoho souboru (viz příklad níže). upload script (není celý, ale myslím, že je to ta podstatná část): <?php if ($_SESSION['rank'] == "admin" OR $_SESSION['rank'] == "support") { $soubor = ($_FILES['soubor'] ['tmp_name']); $soubor_name = ($_FILES['soubor'] ['name']); $soubor_size = ($_FILES['soubor'] ['size']/1024)/1024; $group = $_POST['group']; $subject = $_POST['subject']; $gidform = $_POST['gidform']; echo " <h1>Krok 2</h1> <p class=\"zapisy_vkladani_p\">Vkládejte pouze soubory bez diakritických znamének!</p> <form action=\"http://www.gmvk.eu/zapisy/vkladani-zapisu.php\" method=\"POST\" enctype=\"multipart/form-data\"> <table> <tr> <td>Soubor: </td> <td><input type=\"file\" name=\"soubor\"></td> <td>Předmět: </td> <td> <select> <option value=\"$subject\">".$subject."</option> </select> </td> <td>Skupina (od): </td> <td> <select> <option value=\"$group\">".$group."</option> </select> </td> </tr> <tr> <td><input name=\"subject\" type=\"hidden\" value=\"$subject\"></td> <td><input name=\"group\" type=\"hidden\" value=\"$group\"></td> </tr> "; if ($group != "A") { echo " <tr> <td>Gid: </td> <td><input name=\"gidform\" type=\"text\"></td> </tr> "; } echo " <tr> <td><input name=\"reset\" type=\"reset\" value=\"Reset\"></td> <td><input name=\"gogo\" type=\"submit\" value=\"Odeslat\"></td> </tr> </table> </form> "; require_once "../include/db.php"; $dotaz = mysql_query("SELECT * FROM `files` WHERE `subject` = '".mysql_escape_string($subject)."' AND `group` = 'A'"); echo "<div>"; echo " <table> <tr> <th>Soubor</th> <th>Předmět</th> <th>Datum vložení</th> <th>Velikost souboru</th> <th>Gid</th> </tr> "; while ($vypis = mysql_fetch_assoc($dotaz)) { echo " <tr> <td>".$vypis['name']."</td> <td>".$vypis['subject']."</td> <td>".$vypis['date']."</td> <td>"; printf('%1.2f',$vypis['size']); echo "MB</td> <td>".$vypis['gid']."</td> </tr> "; } echo "</table>"; echo "</div>"; if (isset($_POST['gogo'])) { if ($soubor_size > 10) { echo "Soubor je větší jak 10 MB. Soubor nelze nahrát na server.<br>"; } elseif (is_uploaded_file($soubor)) { $cesta = $subject."/".$group."/"; if (!file_exists($subject)) { mkdir($subject, 0777); echo "Složka $subject byla vytvořena.<br>"; } if (!file_exists($group)) { mkdir($cesta, 0777); echo "Cílová složka $group byla vytvořena.<br>"; } if (move_uploaded_file($soubor, $cesta.$soubor_name)) { echo "Soubor $soubor_name o velikosti "; printf('%1.2f',$soubor_size); echo "MB byl úspěšně nahrán na server.<br>"; $date = Date("j/m/Y H:i:s", Time()); $splneno = 1; } else { echo "Při nahrávání souboru došlo k chybě. Prosím zopakujte akci.<br>"; $splneno = 0; } } /* ZÁPIS DO DATABÁZE */ } } else { echo "<h1>Nemáte dostatečné oprávnění na navštívení této stránky. Prosím, přihlaš se</h1>"; } ?> Soubory vypisuji do tabulky a download dávám klasicky přes <a href="#"></a>, příklad zde: <?php echo("<a href=\"."/".$row['name]http://www.gmvk.eu/neco/neco/".$row['group']."/".$row['name']."\">" . $row['name'] . '</a><br />'); ?> Tento systém momentálně upravuji, chci přidat, aby se velká písmena a interpunkce "smazali" a byla tam jen normální, malá písmena. Bohužel kvůli časové tísni tu budu nejspíš až ve čtvrtek večer. Za všechny rady budu nesmírně rád! |
||
Slark Profil * |
#2 · Zasláno: 21. 5. 2015, 15:23:19
Input na vybrání souboru musí být pole <input type="file" name="soubor[]">, pak tu část kde soubor zpracujete budete zpracovávat jako pole (foreach). Na stažení souboru pomůže toto:
http://php.net/manual/en/function.readfile.php |
||
Vilak Profil |
#3 · Zasláno: 22. 5. 2015, 23:08:23
Dobře, download bych měl, děkuji! Ale s polem (for, foreach, array) jsme nějak moc nedělal. Nedokážu si představit, jak to mám zpracovat jako pole...
|
||
Kubo2 Profil |
#4 · Zasláno: 24. 5. 2015, 17:44:13 · Upravil/a: Kubo2
Vilak:
- pole: php.net/language.types.array - prechádzanie poľa: php.net/control.structures.foreach Ono aby to bolo jasné, $_FILES je tiež pole, a pracuje sa s ním teda takisto, ako s akýmkoľvek iným poľom.
|
||
Časová prodleva: 8 let
|
0