Muokkasin hieman tuota multiuploadiskriptiä mutta se jostain kumman syystä ei pelitä. Se vain refreshhaa sivun eikä anna mitään virheilmotusta eikä mitään eikä tule kuvaakaan serverille.
Koodi on tämännäköinen
<?php include("../status.php"); if ($kirjautunut == "0") { exit("stfu"); } else { ob_start(); define("MAX_COUNT", 1); // määritetään että kuinka monta tiedostoa voidaan kerralla tallentaa serverille define("UPLOAD_DIRECTORY", "upload/" . $tunnus . "/"); // määritellään tiedostojen uusi koti, eli minne tiedostot upitetaan define("MAX_SIZE", 655355000); // yksittäisen tiedoston maksimikoko define("INDEX_PAGE", "upload.php?done=ok"); // määritetään redirect sivu if(!is_dir(UPLOAD_DIRECTORY)) { mkdir(UPLOAD_DIRECTORY, 0777); // jos hakemistoa ei ole olemassa, luodaan sellainen } if(file_exists($_FILES['file1']['tmp_name'])) { // tarkistetaan että edes ensimmäinen kuva on tallentunut servulle temp hakemistoon, aloitetaan upitus for($i=1; $i<=MAX_COUNT; $i++) { $file_type = $_FILES['file'.$i]['type']; $type = explode("/", $file_type); $type = $type[0]; if ($type != "image") { exit('<meta http-equiv="refresh" content="0;url=upload.php?done=inte">'); } else { if($_FILES['file'.$i]['size'] > MAX_SIZE) { echo "Liian iso tiedosto!<br>".MAX_SIZE." on raja"; break; } if(file_exists(UPLOAD_DIRECTORY.$_FILES['file'.$i]['name'])) { exit($_FILES['file'.$i]['name']." niminen tiedosto on jo serverillä"); } $kuva = file("monesko.txt"); $kuva = $kuva[0]; $kuva++; $tallennus = fopen("monesko.txt", "w"); fwrite($tallennus, $kuva); fclose($tallennus); $asdf = explode(".", $_FILES['file'.$i]['name']); $asdf = $asdf[count($asdf)-1]; $ulos = $kuva . "." . strtolower($asdf); move_uploaded_file($_FILES['file'.$i]['tmp_name'], UPLOAD_DIRECTORY.$ulos); list($width, $height, $type, $attr) = getimagesize(UPLOAD_DIRECTORY.$ulos); if (($width > 1024) || ($height > 1024)) { exec("rm " . UPLOAD_DIRECTORY.$ulos); echo '<meta http-equiv="refresh" content="0;url=upload.php?done=iso">'; } else { echo '<meta http-equiv="refresh" content="0;url=upload.php?done=ok">'; } } } } ?> <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" ENCTYPE="multipart/form-data"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="102400000"> <?php for($i=1;$i<=MAX_COUNT;$i++) { include("../top.php"); echo "<h2>Kuvan lisäys</h2><br>"; include("../sisempi.html"); if ($_GET['done'] == "ok") { echo '<p class="punainen">Kuva tallennettu!</p>'; } if ($_GET['done'] == "inte") { echo '<p class="punainen">Lähettämäsi tiedosto ei ole kuvatiedosto!</p>'; } if ($_GET['done'] == "iso") { echo '<p class="punainen">Lähettämäsi kuva on liian suuri! Maksimikoko 1024x1024 px.</p>'; } echo "Kuvan tulee olla PNG tai JPG kuva.<br>Koko mieluiten 640x480 jottei GD kauheasti huononna kuvaa.<br><br>"; echo "<form><input type=\"file\" name=\"file".$i."\" size=\"75\"><br>"; } ?> <br><input type="submit" value="upload"></form><?php include("../bottom.php"); ob_end_flush(); exit; } include("../bottom.php"); ?>
Se siis tosiaan vain "päivittää" sivun :-/
Että jos joku ymmärtäisi mistä moinen johtuu niin olisi mukava jos saisin palautetta.
Toinen juttu että pitääkö "upload/" hakemisto olla chmodattu 777 ja pitääkö sen chownit olla www-data vai se käyttäjä jonka hakemistossa tuo upload.php on ?
Huonot sisennykset ja vähäiset virheiden tarkistukset ovat varmaan syy.
Eli jotain tyyliin:
Aihe on jo aika vanha, joten et voi enää vastata siihen.