Hola, Tengo Un Sistema que eh Conseguido de upload con jquery javascrip y flash, entonces quisiera saber como recojo tambien los datos de los campos que tengo aparte del campo File_name ese campo lo envia correctamente ya que es del sistema de upload que viene por defecto.
Me Recoje El Campo File_name Muy Bien y Se sube el archivo que selecciono y se guardan los datos en la base de datos del campo File_name.
aqui va el script que va en el tag de head que le da la funcion al campo file_name: Código HTML:
<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/swfupload/swfupload.js"></script>
<script type="text/javascript" src="js/jquery.swfupload.js"></script>
<script type="text/javascript">
$(function(){
$('#swfupload-control').swfupload({
upload_url: "upload-file.php",
file_post_name: 'file_name',
file_size_limit : "1024",
file_types : "*.mp3;*.MP3;*.wav",
file_types_description : "Image files",
file_upload_limit : 5,
flash_url : "js/swfupload/swfupload.swf",
button_image_url : 'js/swfupload/wdp_buttons_upload_114x29.png',
button_width : 114,
button_height : 29,
button_placeholder : $('#button')[0],
debug: false
})
.bind('fileQueued', function(event, file){
var listitem='<li id="'+file.id+'" >'+
'File: <em>'+file.name+'</em> ('+Math.round(file.size/1024)+' KB) <span class="progressvalue" ></span>'+
'<div class="progressbar" ><div class="progress" ></div></div>'+
'<p class="status" >Pending</p>'+
'<span class="cancel" > </span>'+
'</li>';
$('#log').append(listitem);
$('li#'+file.id+' .cancel').bind('click', function(){
var swfu = $.swfupload.getInstance('#swfupload-control');
swfu.cancelUpload(file.id);
$('li#'+file.id).slideUp('fast');
});
// start the upload since it's queued
$(this).swfupload('startUpload');
})
.bind('fileQueueError', function(event, file, errorCode, message){
alert('Size of the file '+file.name+' is greater than limit');
})
.bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){
$('#queuestatus').text('Files Selected: '+numFilesSelected+' / Queued Files: '+numFilesQueued);
})
.bind('uploadStart', function(event, file){
$('#log li#'+file.id).find('p.status').text('Uploading...');
$('#log li#'+file.id).find('span.progressvalue').text('0%');
$('#log li#'+file.id).find('span.cancel').hide();
})
.bind('uploadProgress', function(event, file, bytesLoaded){
//Show Progress
var percentage=Math.round((bytesLoaded/file.size)*100);
$('#log li#'+file.id).find('div.progress').css('width', percentage+'%');
$('#log li#'+file.id).find('span.progressvalue').text(percentage+'%');
})
.bind('uploadSuccess', function(event, file, serverData){
var item=$('#log li#'+file.id);
item.find('div.progress').css('width', '100%');
item.find('span.progressvalue').text('100%');
var pathtofile='<a href="uploads/'+file.name+'" target="_blank" >view »</a>';
item.addClass('success').find('p.status').html('Done!!! | '+pathtofile);
})
.bind('uploadComplete', function(event, file){
// upload has completed, try the next one in the queue
$(this).swfupload('startUpload');
})
});
</script>
Aqui esta el formulario.
Código HTML:
<div id="swfupload-control">
<p>Upload upto 5 image files(jpg, png, gif), each having maximum size of 1MB</p><form action="upload-file.php" enctype="multipart/form-data" method="post" name="formulario" target="_blank" >
<table class="file_slot" cellpadding="0" cellspacing="3" width="360">
<tbody>
<tr>
<td width="1%" align="right"><b>Filename:</b></td>
<td nowrap="nowrap"><!--APC hidden field-->
<!---->
<label for="file_name"></label>
<input name="file_name" type="file" id="button" /></td>
</tr>
<tr>
<td align="right" nowrap="nowrap"><b>Uploaded by:</b></td>
<td><input type="text" name="upload_by" id="upload_by" /></td>
</tr>
<tr>
<td align="right" valign="top"><b>Fecha:</b></td>
<td><input name="upload_date_file" type="text" id="upload_date_file" /></td>
</tr>
<tr>
<td align="right" valign="top"><b>Description:</b></td>
<td><input type="text" name="descripcion" id="descripcion" /></td>
</tr>
<tr>
<td align="right"><b>Datos:</b></td>
<td><input type="text" name="cadenatexto" id="cadenatexto" /></td>
</tr>
<tr>
<td align="center" colspan="2"><!--Include the iframe-->
<br />
<br />
<!---->
</td>
</tr>
</tbody>
</table></form>
<p> </p>
<p id="queuestatus" ></p>
<ol id="log"></ol>
</div>
Aqui esta la funcion de guardar el archivo que se recoje en campo file_name:
Código PHP:
<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";
//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES['file_name']['name'];
$tipo_archivo = $HTTP_POST_FILES['file_name']['type'];
$tamano_archivo = $HTTP_POST_FILES['file_name']['size'];
$destino = './musica/'.$nombre_archivo;
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "mp3") || strpos($tipo_archivo, "MP3")) && ($tamano_archivo < 900000000000000000000000000000000000000000000000000000))) {
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
if (copy($_FILES['file_name']['tmp_name'],$destino)) {
echo "El archivo ha sido cargado correctamente.";
} else {
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
?>
<?php
// Si entramos es que todo se ha realizado correctamente
$d_host = "localhost"; // MySQL server host
$d_port = ""; // MySQL server port
$d_user = "root"; // MySQL username
$d_pass = "123456"; // MySQL password
$db_name = "upload_files";
//La conexión
$coneccion = mysql_connect($d_host,$d_user,$d_pass) or die ('No se puede conectar con la DB por que: ' . mysql_error());
mysql_select_db($db_name,$coneccion);
# se recogen los datos del formulario
$file_name = $_POST['file_name'];
$upload_by = $_POST['upload_by'];
$descripcion = $_POST['descripcion'];
$upload_date_file = $_POST['upload_date_file'];
//Insertando en la base de datos
$sql="INSERT INTO upload_files (file_name,upload_by,descripcion,file_size,upload_date_file) VALUES ('$nombre_archivo','$upload_by','$descripcion','$tamano_archivo','$upload_date_file')";
mysql_query($sql,$coneccion) or die (mysql_error());
?>
<?php
$result = mysql_query("SELECT * FROM upload_files WHERE upload_date_file = '$upload_date_file' ORDER BY id_file DESC LIMIT 1", $coneccion);
if ($row = mysql_fetch_array($result)){
//Aqui le pongo una bariable al id del archivo
$idarchivo = $row['id_file'];
$nombrefile = $row['file_name'];
while ($row = mysql_fetch_array($result));
} else {
echo "¡ La base de datos está vacia !";
}
?>
<?php
Me Funciona muy bien la funcion de upload, i se guarda los datos del campo FILE_NAME en la base de datos pero no se recojen los otros datos del formulario, me gustaria saber si entendieron, y me ayuden con eso que tengo un dolor de cabeza . Gracias...