Momenteel ben ik al een paar dagen op zoek naar een manier om een image naar een server te sturen, zonder dat de gebruiker de huidige pagina verlaat.
Dit is de code die ik tot nog toe heb :
De bijbehorende functie :
En het bestand in het bestand "server.php" staat voorloptig
Bovenstaande code is de code waarvan ik vrij zeker weet dat die goed is. Het is met gelukt om data over te sturen, en ook weer terug te krijgen. Wat me nog niet gelukt is om een afbeelding te versturen.
Hiervoor heb ik 2 dingen die ik niet weet,
1) Hoe ziet de data eruit die verstuurd moet worden?
2) Hoe catch ik deze in het php bestand op de server. Het lijkt erop dat versturen met XMLHttpRequest() andere data stuurt dan een form dat gesubmit word.
Verder heb ik gezien dat het plaatsen van Headers iets kan oplossen, maar ben ik er nog niet achter of dit nodig is en hoe ze er dan precies uit moeten zien. Dit ook omdat dit weer gerelateerd is aan de manier hoe "data" eruit ziet.
Dit is de code die ik tot nog toe heb :
HTML:
1
2
3
4
5
| <form id='form1' enctype='multipart/form-data'> File: <input type='file' id='imageUpload' name='imageUpload' size='20' /> <br /> <input type='button' value='Save' onClick="ajaxFunction();"> <textarea name="respons"></textarea> </form> |
De bijbehorende functie :
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
25
26
27
28
29
30
31
32
| function ajaxFunction(){ var ajaxRequest; // The variable that makes Ajax possible! try{ // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ // Internet Explorer Browsers try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4){ document.myForm.respons.value = ajaxRequest.responseText; } } //Gather the data which will be send var data = ? ajaxRequest.open("POST", "server.php", true); ajaxRequest.send(data); } |
En het bestand in het bestand "server.php" staat voorloptig
PHP:
1
2
3
| <?php print_r($_REQUEST); ?> |
Bovenstaande code is de code waarvan ik vrij zeker weet dat die goed is. Het is met gelukt om data over te sturen, en ook weer terug te krijgen. Wat me nog niet gelukt is om een afbeelding te versturen.
Hiervoor heb ik 2 dingen die ik niet weet,
1) Hoe ziet de data eruit die verstuurd moet worden?
2) Hoe catch ik deze in het php bestand op de server. Het lijkt erop dat versturen met XMLHttpRequest() andere data stuurt dan een form dat gesubmit word.
Verder heb ik gezien dat het plaatsen van Headers iets kan oplossen, maar ben ik er nog niet achter of dit nodig is en hoe ze er dan precies uit moeten zien. Dit ook omdat dit weer gerelateerd is aan de manier hoe "data" eruit ziet.