Me gusta el Uploadify por tener una barra gráfica de la subida de archivos, y buscando en internet encontre este enlace, donde envía los datos a una Base de Datos MySQL. Y me funciona perfectamente el envío de archivos y la inserción del nombre y la fecha.
El problema es que estoy intentando agregar título y descripción a la foto que se envía. Ya he agregado un par de líneas al código pero no me funciona.
La Base de Datos es:
Código:
Donde agregué los campos title y descriptionDROP TABLE IF EXISTS `uploadify`; CREATE TABLE `uploadify` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `filename` varchar(200) DEFAULT NULL, `title`varchar(200) DEFAULT NULL, `description` text DEFAULT NULL, `filedate` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
El index.php es:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Enviando archivo con Uploadify a BD!</title>
<!-- CSS -->
<link rel="stylesheet" href="uploadifyit/uploadify.css" type="text/css" />
<!-- Javascript -->
<script type="text/javascript" src="uploadifyit/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="uploadifyit/swfobject.js"></script>
<script type="text/javascript" src="uploadifyit/jquery.uploadify.v2.1.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//alert('I am ready to use uploadify!');
$("#file_upload").uploadify({
'uploader': 'uploadifyit/uploadify.swf',
'script': 'uploadifyit/uploadify.php',
'cancelImg': 'uploadifyit/cancel.png',
'folder': 'uploads',
'auto': false, // use for auto upload
'multi': true,
'queueSizeLimit': 1, //Para enviar solo un archivo
'onQueueFull': function(event, queueSizeLimit) {
alert("Ya no puede colocar más archivos! Sólo puede subir " + queueSizeLimit + " a la vez.");
return false;
},
'onComplete': function(event, ID, fileObj, response, data) {
// you can use here jQuery AJAX method to send info at server-side.
$.post("insert.php", { name: fileObj.name }, function(info) {
alert(info); // alert UPLOADED FILE NAME
});
}
});
});
</script>
</head>
<body>
<form id="form1" name="form1" action="">
<input type="file" id="file_upload" name="file_upload" /><br />
File title: <br />
<input type="text" id="title" name="title" /><br />
File Description:<br />
<textarea cols="30" rows="4" id="description" name="description"></textarea><br />
<a href="javascript:$('#file_upload').uploadifyUpload();">Upload File</a>
</form>
</body>
</html>
Por último el archivo insert.php
Código PHP:
<?php
// connect database
$dbc = mysql_connect("localhost", "root", "");
// select database
mysql_select_db("uploadify_ba2", $dbc);
if(isset($_POST)) {
//echo $_POST['name'];
$fileName = $_POST['name'];
$time = time();
$title = $_POST['title'];
$description = $_POST['description'];
mysql_query("INSERT INTO uploadify(filename, filedate, title, description) VALUES('$fileName', '$time', '$title', '$description')");
$inserted_id = mysql_insert_id($dbc);
if($inserted_id > 0) { // if success
echo "Archivo subido: " . $fileName;
}
}
?>
$title = $_POST['title'];
$description = $_POST['description'];
Y sus respectivos elementos en el INTO de mysql
Aún con lo que le he agregado a los scripts, me envía la foto e inserta los datos del nombre de archivo y su fecha, pero deja en blanco los otros dos.
Agradezco de antemano su ayuda.