Ayuda con formulario

  • Autor Autor kanikase
  • Fecha de inicio Fecha de inicio
kanikase

kanikase

Préstamo
Ómicron
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Hola, necesito ayuda, quiero hacer una pequeña web de uso personal, para pasar las imagenes a base64, ya lo tengo, pero no quiero seleccionar el directorio de la imagen directo del código, si no de un formulario, alguien me puede ayudar, esto es lo que tengo hasta ahora.

PHP:
<title>Crear imagen base64</title>
<div style="width:520px;border:1px solid black;padding:8px;margin:8px 15px 8px 0;">
<form enctype="multipart/form-data" action="" method="post"><div style='margin-bottom:15px'>
<input name="uploadedfile" type="file" style="width:400px;" />
<input type="submit" value="Subir archivo" /></div>
<?php
$file = 'head.png';
$tipo = pathinfo($file,PATHINFO_EXTENSION);
$datos = file_get_contents($file);
$base64 = 'data:image/'.$tipo.';base64,'.base64_encode($datos);
echo '<img src="'.$base64.'" width="100" height="100" /><br><br><textarea onclick="this.select()" style="width:100%;height:200px;">'.$base64.'</textarea>';
?>
 
Hola.

Puedes empezar eligiendo la página PHP que recibirá los datos del formulario (una imagen, en este caso). Para ello debes indicar el archivo en el atributo "action" del formulario. Por ejemplo: action="convertir.php".
Quedaría así:
Insertar CODE, HTML o PHP:
<form enctype="multipart/form-data" action="convertir.php" method="post">

En la página del formulario no es necesario ningún script PHP.

Ahora trabajaremos en el archivo "convertir.php". En vez de cargar la imagen "head.png", que era la que habías utilizado hasta ahora, usaremos la que ha seleccionado el usuario a través del formulario. Te recomiendo que leas esta guía: Upload de archivos con PHP .

Grosso modo, lo que tendrías que hacer es modificar un poco el script que tenías antes en el formulario.

convertir.php
Insertar CODE, HTML o PHP:
<?php 
$tipo = $_FILES['uploadedfile']['type']; //Podemos obtener directamente el tipo de archivo.
$datos = file_get_contents($_FILES['uploadedfile']['tmp_name']); //El archivo es cargado en el servidor con un nombre temporal que será el que utilicemos.

//Las dos siguientes líneas no las he modificado.
$base64 = 'data:image/'.$tipo.';base64,'.base64_encode($datos); 
echo '<img src="'.$base64.'" width="100" height="100" /><br><br><textarea onclick="this.select()" style="width:100%;height:200px;">'.$base64.'</textarea>'; 
?>

Fíjate que $_FILES es un array bidimensional, entre los primeros corchetes se indica el atributo "name" del input del formulario que te permite subir el archivo. Entre los segundos corchetes indicamos la información que queremos saber sobre dicho archivo.

No lo he probado, no sé si funciona. Un saludo.
 
Atrás
Arriba