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>";
                }
                ?>
Taky chci udělat to, aby se mi tyto soubory vypsaly a daly se stáhnout. To vyřešené mám, ale mám problém u souborů, které mají koncovky, co dokážou otevřít prohlížeče, např.: .jpg, .png, .txt,... - Jak mám udělat, aby se soubory s takovouto (či podobnou) koncovkou začaly stahovat?
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 />');
?>
Proč se mi tam objevuje (před http) ."/".$row['name], když nic takového v tom code nemám a když to smažu, tak se to tam znova objeví? - Platí pouze tady v diskuzi, normálně s tím problém nemám a funguje mi to.
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 *
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
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: