Ik zit met een klein probleem. Ik wil een image uploader in PHP maken. Nu is dit helemaal gelukt, en wil ik het gaan implementeren in mijn bestaande applicatie. Probleem is echter dat het dan niet meer werkt. Ik heb verschillende bugtesten gedaan en zo kom ik op het probleem uit dat de data die doorgestuurd moet worden helemaal niet wordt doorgestuurd, sterker nog het lijkt alsof de hele PHP file niet wordt gebruikt.
1. Zou het kunnen komen dat ik 2 keer een POST gebruik. Ik heb in mijn applicatie een optie om een logo te uploaden, hier gebruiken ze dan een apart formulier voor met een aparte uploadknop, de gehele AJAX call werkt, wordt allemaal doorlopen, echter de data die ik terugkrijg is leeg, iets wat niet klopt en ik denk dat het PHP file niet wordt aangeroepen? Het rare is dat het los van de applicatie wel werkt, maar zodra ik het wil implementeren niet meer.
Hieronder staan de files. Ik log met de console wat voor data is doorgezonden, wat ik in mijn console krijg te zien is niets, leeg. Kan het zijn dat er een conflict in de javascript is? Want zodra dat het geval zou ik dat in mijn console te zien krijgen.
Heel simpel formpje:
1. Zou het kunnen komen dat ik 2 keer een POST gebruik. Ik heb in mijn applicatie een optie om een logo te uploaden, hier gebruiken ze dan een apart formulier voor met een aparte uploadknop, de gehele AJAX call werkt, wordt allemaal doorlopen, echter de data die ik terugkrijg is leeg, iets wat niet klopt en ik denk dat het PHP file niet wordt aangeroepen? Het rare is dat het los van de applicatie wel werkt, maar zodra ik het wil implementeren niet meer.
Hieronder staan de files. Ik log met de console wat voor data is doorgezonden, wat ik in mijn console krijg te zien is niets, leeg. Kan het zijn dat er een conflict in de javascript is? Want zodra dat het geval zou ik dat in mijn console te zien krijgen.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| <?php //kijken of er een bestand is geselecteerd if(isset($_FILES['bestand'])) { //als het bestand groter is dan 102400 bytes(100kb) word hij niet toegelaten if($_FILES['bestand']['size'] > 102400) { echo "Het bestand is <b>" . $_FILES['bestand']['size'] . "</b>, het maximale toegstaan is <b>102400</b>"; } else { //kijken of het bestand wel een gif, png of jpg is if($_FILES['bestand']['type'] == "image/gif" || $_FILES['bestand']['type'] == "image/png" || $_FILES['bestand']['type'] == "image/pjpeg" || $_FILES['bestand']['type'] == "image/jpeg") { //kijken of er een nieuwe naam aan het bestand is gegeven if(empty($_POST['naam'])) { $naam = $_FILES['bestand']['name']; } else { //strip de extensie om die achter de nieuwe bestandsnaam te plakken $x = strrchr($_FILES['bestand']['name'], "."); $naam = $_POST['naam'] . $x; } //het bestand uploaden met de nieuwe of oude naam move_uploaded_file($_FILES['bestand']['tmp_name'], "uploads/" . $naam); //voor linux of unix hosts chmodden we het bestand naar 777 zodat iedereen um kan zien chmod("uploads/" . $naam, 0777); echo "Het plaatje is geupload<br />"; echo "Op deze plaats: uploads/". $naam ."<br />"; echo "<img src='uploads/$naam'>"; } else { echo "Het bestand is geen png, jpg of gif"; } } } ?> |
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| jQuery(document).ready(function() { jQuery("#uploadform").submit(function(e) { console.log('upload die handel'); e.preventDefault(); jQuery.ajax({ url: "upload.php", type: "POST", data: new FormData(this), contentType: false, cache: false, processData:false, success: function(data) { console.log('upload gelukt'); console.log(data); $("#logouploadtekst").append(data); }, error: function() { $("#logouploadtekst").html('Great failure!'); } }); }); }); |
Heel simpel formpje:
HTML:
1
2
3
4
| <FORM id="uploadform" ACTION="" METHOD="post" ENCTYPE="multipart/form-data"> <INPUT TYPE="file" NAME="bestand"><BR /> <INPUT TYPE="submit" NAME="submit" VALUE="Upload" id="uploadFormButton"> </FORM> |
[ Voor 57% gewijzigd door The Great HooD op 13-09-2014 13:06 ]