Permalänk

ImageUpload med PHP

Har stött på ett problem till i PHP upload. Ser man formuläret på sidan, med det funkar fortfarande inte.

Fel som uppstår: När man kommer in på sidan så står det att filen inte är i rätt format innan man ens har försökt att ladda upp den

När man trycker submit kommer man till en felsida, att någon sida saknas.

Så här ser det ut i mappen där scriptet ligger:

Inne i Uploads mappen ligger filen "links.txt"

Här är guiden jag har försökt följa: http://www.urlearn.com/phptut/image_upload.htm
Så här ser hela koden ut:

<body> <br><h2><a href='../library.php'>View Images Library</a></h2> <? session_start(); $_SESSION['firsttimeupload']= "ok"; $n=$_FILES['user_file']['name']; $type=$_FILES['user_file']['type']; $size=$_FILES['user_file']['size']; $time=time(); $n=$time; $path="uploads\\". $n; if ($size<100000 && ereg("image", $type)) { move_uploaded_file($_FILES['user_file']['tmp_name'], $path); $root= "http://utbildning.mellerud.se/elev18/norling/XD3D/upload/uplo..."; $path2=$root . $n; echo "<center>"; echo "<h3>Your Image Link Is: </h3><a href=$path2>$path2</a><br><br>"; echo "<br>"; echo "<img src=$path2 border='5'></img>"; echo "<center>" $fp=fopen("links.txt", "at"); fwrite($fp, $path2."\n"); fclose($fp); } if ($size>100000) { echo "ERROR <br> the image size is too big"; } if (!ereg("image", $type) ) { echo "ERROR <br> the file is not image<br>"; } $links=file("links.text"); foreach ($links as $links2) { list($link) = explode("\n", $links2); echo "<center><img src=$link width='400' hieght='400' border='5'></img></center>"; } ?> <body bgcolor= white> <br /> <br /> <br /> <br /> <center> <p>Choose the image you want to upload, The image must be less than 1000 kb in size.</p> <form action="../upload.php" enctype="multipart/form-data" method="POST"> <p>Select a file: <input type="file" name="user_file" size="50"> <br /> <br /> <input type="submit" name="submit" value="Upload Now" /> </p> <? $n=$_FILES['user_file']['name']; $type=$_FILES['user_file']['type']; $size=$_FILES['user_file']['size']; $time=time(); $n=$time; $path="uploads\\". $n; if ($size<1000000 && ereg("image", $type)) { move_uploaded_file($_FILES['user_file']['tmp_name'], $path); $root= "http://utbildning.mellerud.se/elev18/norling/XD3D/upload/inde..."; $path2=$root . $n; echo "<center>"; echo "<h3>Your Image Link Is: </h3><a href=$path2>$path2</a><br><br>"; echo "<br>"; echo "<img src=$path2 border='5'></img>"; echo "<center>" $fp=fopen("links.text", "at"); fwrite($fp, $path2."\n"); fclose($fp); } if ($size>1000000) { echo "ERROR <br> the image size is too big"; } if (!ereg("image", $type) ) { echo "ERROR <br> the file is not image<br>"; } $links=file("links.text"); foreach ($links as $links2) { list($link) = explode("\n", $links2); echo "<center><img src=$link width='400' hieght='400' border='5'></img></center>"; } session_destroy(); } } ?> </form> </center> </body>

Jag vill först bara få koden att funka sen ska jag lägga in allting på sidan. Jag är rätt säker på att det finns en mängd fel i koden, jag kan dock inte PHP och har lite svårt att felsöka då.

Visa signatur

Primary: i7-4790k @ 4 GHz | Cooler Master Hyper 212 EVO | MSI Z97 GAMING 5 | Corsair Vengeance 8GB 1600Mhz LP | MSI GeForce GTX 970 Gaming 4G | Samsung SSD PRO 850-Series 256GB | EVGA Supernova G2 850W
Equipment: BenQ XL2420T | Logitech Proteus Core G502 | QPAD QH-90 Pro | Steelseries QcK+ | Logitech Desktop USB Microphone

Permalänk

Jag fattar ingenting, är det där alltså en fil? Du gör ju samma saker två ggr... Började försöka rensa lite men pallar inte riktigt, det är tyvärr i 99% av fallen helt dödfött att försöka ta ett färdigt script och lägga in på en sida om du inte kan PHP.

Formuläret skickar till upload.php, har du en fil som heter så?

Visa signatur

Q6600 @ 3.2GHz | 2*4 Corsair XMS2 5-5-5-12 @ 1003 | Club3D HD4850 | Asus P5Q Pro

Permalänk
Citat:

Ursprungligen inskrivet av Matte Hedström
Jag fattar ingenting, är det där alltså en fil? Du gör ju samma saker två ggr... Började försöka rensa lite men pallar inte riktigt, det är tyvärr i 99% av fallen helt dödfött att försöka ta ett färdigt script och lägga in på en sida om du inte kan PHP.

Formuläret skickar till upload.php, har du en fil som heter så?

Har ingen aning längre :S

Jag har suttit och försökt få detta att funka och har insett att det går nog snabbare att skriva det själv än att försöka få denna att funka. Så sitter och försöker med Aptana och CodeIgniter och ska försöka lära mig det själv, med hjälp av internet såklart

Visa signatur

Primary: i7-4790k @ 4 GHz | Cooler Master Hyper 212 EVO | MSI Z97 GAMING 5 | Corsair Vengeance 8GB 1600Mhz LP | MSI GeForce GTX 970 Gaming 4G | Samsung SSD PRO 850-Series 256GB | EVGA Supernova G2 850W
Equipment: BenQ XL2420T | Logitech Proteus Core G502 | QPAD QH-90 Pro | Steelseries QcK+ | Logitech Desktop USB Microphone

Permalänk

Hmm...skulle nog lära mig "vanlig" PHP innan du försöker dig på frameworks!

EDIT: Ska du ha bilduppladdningen på en publik sida eller är det bara du som ska ladda upp?

Visa signatur

Q6600 @ 3.2GHz | 2*4 Corsair XMS2 5-5-5-12 @ 1003 | Club3D HD4850 | Asus P5Q Pro

Permalänk

Här har du en jätteenkel kod som laddar upp en fil och sparar sökvägen i en textfil. Ingen felkontroll eller liknande, men du kan ju ha den som utgångsläge om du vill...

<?php $path = "images/"; if(isset($_POST['check']) && $_FILES["userfile"]["error"] == 0) { $fullpath = $path . $_FILES["userfile"]["name"]; if(!move_uploaded_file($_FILES["userfile"]["tmp_name"], $fullpath)) { echo "Kunde inte ladda upp filen"; } else { $f=fopen("links.txt", "a"); fwrite($f, $fullpath."\n"); fclose($f); } } ?> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="check" value="1" /> <input type="file" name="userfile" /> <input type="submit" value="Ladda upp" /> </form>

Sen kan du ju använda koden från ditt exempel för att få ut sökvägarna från textfilen...

$links=file("links.text"); foreach ($links as $links2) { list($link) = explode("\n", $links2); echo "<center><img src=$link width='400' hieght='400' border='5'></img></center>"; }

Visa signatur

Q6600 @ 3.2GHz | 2*4 Corsair XMS2 5-5-5-12 @ 1003 | Club3D HD4850 | Asus P5Q Pro