subir studio servidor imagen ejemplo descargar datos conexion conectar con archivos archivo php mysql file upload download

php - imagen - subir audio a servidor android studio



Cargar y descargar Php MySQL Script (1)

He hecho uso de un script que está disponible en línea. El archivo upload.php le permite al usuario cargar un archivo y luego almacenar el archivo seleccionado en la base de datos MySQL. Más tarde, el script download.php muestra los enlaces de todos los archivos almacenados en la base de datos. Cuando el usuario hace clic en el enlace, el archivo debe descargarse. He incluido el script a continuación. Pero el problema es que cuando hago clic en el enlace, se muestra el contenido del archivo en lugar de descargarlo.

upload.php

<!-- CREATE TABLE IF NOT EXISTS `upload` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) NOT NULL, `type` varchar(30) NOT NULL, `size` int(11) NOT NULL, `content` longblob NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; --> <html> <head></head> <body> <form method="post" enctype="multipart/form-data"> <table width="350" border="0" cellpadding="1" cellspacing="1" class="box"> <tr> <td>please select a file</td></tr> <tr> <td> <input type="hidden" name="MAX_FILE_SIZE" value="16000000"> <input name="userfile" type="file" id="userfile"> </td> <td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td> </tr> </table> </form> </body> </html> <?php if (isset($_POST[''upload'']) && $_FILES[''userfile''][''size''] > 0) { $fileName = $_FILES[''userfile''][''name'']; $tmpName = $_FILES[''userfile''][''tmp_name'']; $fileSize = $_FILES[''userfile''][''size'']; $fileType = $_FILES[''userfile''][''type'']; $fileType = (get_magic_quotes_gpc() == 0 ? mysql_real_escape_string( $_FILES[''userfile''][''type'']) : mysql_real_escape_string( stripslashes($_FILES[''userfile'']))); $fp = fopen($tmpName, ''r''); $content = fread($fp, filesize($tmpName)); $content = addslashes($content); fclose($fp); if (!get_magic_quotes_gpc()) { $fileName = addslashes($fileName); } $con = mysql_connect(''localhost'', ''root'', ''root'') or die(mysql_error()); $db = mysql_select_db(''test'', $con); if ($db) { $query = "INSERT INTO upload (name, size, type, content ) " . "VALUES (''$fileName'', ''$fileSize'', ''$fileType'', ''$content'')"; mysql_query($query) or die(''Error, query failed''); mysql_close(); echo "<br>File $fileName uploaded<br>"; } else { echo "file upload failed"; } } ?>

Download.php

<html> <head> <title>Download File From MySQL Database</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php $con = mysql_connect(''localhost'', ''root'', ''root'') or die(mysql_error()); $db = mysql_select_db(''test'', $con); $query = "SELECT id, name FROM upload"; $result = mysql_query($query) or die(''Error, query failed''); if (mysql_num_rows($result) == 0) { echo "Database is empty <br>"; } else { while (list($id, $name) = mysql_fetch_array($result)) { ?> <a href="download.php?id=<?php echo urlencode($id); ?>" ><?php echo urlencode($name); ?></a> <br> <?php } } mysql_close(); ?> </body> </html> <?php if (isset($_GET[''id''])) { $con = mysql_connect(''localhost'', ''root'', ''root'') or die(mysql_error()); $db = mysql_select_db(''test'', $con); $id = $_GET[''id'']; $query = "SELECT name, type, size, content " . "FROM upload WHERE id = ''$id''"; $result = mysql_query($query) or die(''Error, query failed''); list($name, $type, $size, $content) = mysql_fetch_array($result); header("Content-length: $size"); header("Content-type: $type"); header("Content-Disposition: attachment; filename=$name"); ob_clean(); flush(); echo $content; mysql_close(); exit; } ?>


download.php muestra todo el HTML en la parte superior, incluso cuando el usuario ha seleccionado un archivo para descargar. Debes poner toda esa sección en un lugar if no se pone al comienzo de la descarga:

if (!isset($_GET[''id'']) { ?> <html> ... </html> <?php } else { $con = mysql_connect(''localhost'', ''root'', ''root'') or die(mysql_error()); ... // rest of script }