Tengo este ajax:
$('.getid').on('click', function(){ var imagename = $(this).data("id"); // you can make ajax call here to get data $.ajax({ type: "POST", url: "Monitor/downloadDesiredImage", data: {'val' : imagename}, dataType: "text" }).done(function(data) { console.log(data); }).fail(function() { alert( "error" ); }); });Esto funcionará con un botón que se enviará. Haga clic en un valor de identificación guardado en un nombre de imagen de var, que es una cadena que corresponde a un nombre de imagen guardado en mi servidor.
Esta es la función php que obtendrá esa identificación:
public function downloadDesiredImage() { $imagename = $_POST['val']; echo "this is my ". $imagename; $file = file_get_contents('./images/'.$imagename.'.jpg', FILE_USE_INCLUDE_PATH); $imageData = base64_encode(($file)); $src = 'data: '.mime_content_type($file).';base64,'.$imageData; echo '<img src="' . $src . '">'; }Eso generará la imagen en la respuesta de la red, pero también obtendré el error:
Mensaje: mime_content_type(): ruta no válida
Pero lo que quiero hacer después de hacer clic en el botón es descargar esa imagen de mi servidor. Como puedo hacer eso ? ¡Gracias!
mime_content_type() espera el nombre del archivo, no los datos del archivo en sí. Algo como esto:
mime_content_type('./images/'.$imagename.'.jpg')