Ayuda con formulario

kanikase Seguir

Préstamo
Ómicron
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
22 Feb 2014
Mensajes
4.716
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>';
?>
 

RafaG

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
3 Jun 2014
Mensajes
15
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.
 
Arriba