chodzi mi o pracę w PHP na przesłanym obrazku przez Ajaxa.
Podejścia w jQuery
Miałem wiele podejść, ale żadne nie działało w kodzie:
//podejście I var prize_img = $(this).closest('form').find('#file_img').val(); //podejście II var prize_img = $("#file_img").prop("files")[0]; //podejście III var formData = new FormData();
CAŁY KOD
Formularz:
<form id="conversion_form" method="post" action="#" enctype="multipart/form-data"> <input type="text" id="prize_name" size="25" value=""> <input id="file_img" type="file" name="image"> <div id="uploadPreview"></div> </div> <p><input id="button_draw" class="btn btn-lg btn-success" type="submit" value="Losowanie" /></p> </form>
AJAX:
Przesyłanie wartości prize_name działa, obrazka już nie.
$('#button_draw').click(function(e) { e.preventDefault(); // This is how I get to name val but how about IMG? var prize_name = $(this).closest('form').find('#prize_name').val(); //TUTAJ PRZESYŁANIE OBRAZKA NIE DZIAŁA var prize_img = $(this).closest('form').find('#file_img').val(); $.ajax({ context: this, url: './inc/new_draw.php', data: {'prize_name': prize_name, 'prize_img': prize_img}, type: 'POST', success: function(response){ //odpowiedź serwera //Trzeba sparsować zwrot var json = JSON.parse(response); if(json.odp == 1){ } if(response == 2){ } }, error: function(x,n,o){ } }); });
PHP:
<?php include ("config.php"); $prize_name = mysqli_real_escape_string($con, $prize_name); $prize_img = mysqli_real_escape_string($con, $prize_img); //JAK MOGĘ PRACOWAĆ W PHP NA PRZESŁANYM OBRAZKU POPRZEZ AJAXA? $file_size = $prize_img['size']; $file_name = $prize_img['name']; $file_type = $prize_img['type']; if ($prize_name == NULL) { $problem = TRUE; $problem_code = 1; } ?>