Si quieres subir archivos arrastrándolos desde tu equipo y soltándolos en tu sitio web, este tutorial puede que te resulte de gran ayuda. Puedes implementar esta funcionalidad siguiente esta pequeña guÃa, y lo tendrás funcionando en menos que canta un gallo.
Mediante DropzoneJS y PHP podemos implementar una subida de ficheros en nuestro servidor, en la que los usuarios puedan arrastrar y soltar las imágenes y demás archivos en nuestra página. DropzoneJS es una librerÃa open source que te proporciona la funcionalidad “drag'n drop” y además, es capaz de hacerte una preview de las imágenes subidas. Es una librerÃa ligera y no tiene dependencias (como jQuery). Lo que no hace DropzoneJS es subirte los archivos al servidor. Para ello utilizaremos PHP. Es decir, con PHP subiremos los archivos al servidor e insertaremos la información en nuestra base de datos.
Necesitaremos dos archivos de la librerÃa de Dropzone: dropzone.js y dropzone.css. Puedes descargarte estos dos ficheros de la página oficial de DropzoneJS. También puedes obtener estos ficheros del paquete descargable.
- Crea una carpeta js e insertar el fichero dropzone.js dentro de ella
- Crea una carpeta css e insertar el fichero dropzone.css dentro de ella
- Crea una carpeta uploads para almacenar los archivos subidos
- Crea un fichero index.html para la vista de nuestra página
- Crea un fichero upload.php para gestionar la subida del fichero a nuestro hosting y la inserción del la información en la base de datos.
De ese modo, la estructura de ficheros deberÃa parecerse a esto:
js
> dropzone.js
css
> dropzone.css
uploads
index.html
upload.php
Creación de la base de datos
Si quieres almacenar información sobre los ficheros que subas, debes crear una tabla en tu base de datos. Yo te propongo esta, muy sencilla y con muy pocos campos.
CREATE TABLE `files` ( `id` int(11) NOT NULL AUTO_INCREMENT, `file_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `uploaded` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
index.html
Incluimos los archivos de la librerÃa de Dropzone.
<!-- Add Dropzone --> <link rel="stylesheet" type="text/css" href="css/dropzone.css" /> <script type="text/javascript" src="js/dropzone.js"></script>
Solo necesitas abrir y cerrar un elemento de formulario de HTML y nada más. Eso sÃ, el tag <form> debe tener un action y una clase concretas. El action debe apuntar hacia el fichero php que se encargará de subir el archivo, y la clase debe ser dropzone, para que lo identifique la librerÃa Dropzone.
<div class="image_upload_div"> <form action="upload.php" class="dropzone"> </form> </div>
upload.php
Este fichero lo utilizaremos para subir el fichero e introducir su correspondiente información en la base de datos.
<?php if(!empty($_FILES)){ //database configuration $dbHost = 'localhost'; $dbUsername = 'root'; $dbPassword = ''; $dbName = 'prueba'; //connect with the database $conn = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); if($mysqli->connect_errno){ echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; } $targetDir = "uploads/"; $fileName = $_FILES['file']['name']; $targetFile = $targetDir.$fileName; if(move_uploaded_file($_FILES['file']['tmp_name'],$targetFile)){ //insert file information into db table $conn->query("INSERT INTO files (file_name, uploaded) VALUES('".$fileName."','".date("Y-m-d H:i:s")."')"); } } ?>
Fuente: codexworld.com