Foros del Web » Programando para Internet » PHP »

Subir varios archivos a la vez con php y Mysql

Estas en el tema de Subir varios archivos a la vez con php y Mysql en el foro de PHP en Foros del Web. Buenas tardes amigos estoy tratando de subir varios archivos a la vez con la ayuda de Jquery, De hecho el formulario funciona muy bien pero ...
  #1 (permalink)  
Antiguo 26/04/2014, 12:04
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Subir varios archivos a la vez con php y Mysql

Buenas tardes amigos estoy tratando de subir varios archivos a la vez con la ayuda de Jquery, De hecho el formulario funciona muy bien pero el problema es que al insertar no me esta insertando nada. Tambien utilizo la funcion "implode" ya que anteriormente he insertado varios datos a la vez en un solo campo con esta funcion pero no me ha funcionado en este caso con la subida de varios archivos. Alguien me puede colaborar con es te caso por favor se los agradeceria mucho. Dejo el codigo para mostrar lo que estoy tratando de hacer:


Código PHP:
<?php include ('conex.php'); ?>
<html>
    <title>Subida m&uacute;ltiple de archivos 1</title>
<head>
<script src="jquery/jquery.form.js" type="text/javascript"></script>
<script src="jquery/jquery.js" type="text/javascript"></script>
<script src="jquery/jquery.MetaData.js" type="text/javascript"></script>
<script src="jquery/jquery.MultiFile.js" type="text/javascript"></script>
<script src="jquery/jquery.MultiFile.pack.js" type="text/javascript"></script>
<script src="jquery/jquery.validate.js" type="text/javascript"></script>

</head>
<body>

<form enctype="multipart/form-data" name="upload1.php" method="post">

<input type="file" name="archivito[]" class="multi
{accept:"gif|jpg", max:3, STRING:{
remove:"Remover",
selected:"Selecionado: $file",
denied:"Invalido arquivo de tipo $ext!",
duplicate:"Arquivo ja selecionado:\n$file!"}}" />

<input type="submit" name="enviar" value="Enviar archivo">
</form>

</body>
</html>
<?php 
if($_POST["enviar"]){
$archivo$_FILES["archivito"]["tmp_name"];
$tamanio$_FILES["archivito"]["size"];
$tipo   $_FILES["archivito"]["type"];
$nombre $_FILES["archivito"]["name"];
$titulo $_POST["titulo"];
$fp fopen($archivo"rb");
$contenidofread($fp$tamanio);
$contenidoaddslashes($contenido);
fclose($fp);
$_POST[nombre] = "'" implode(','$_POST['nombre']) . "'";
$_POST[archivito] = "'" implode(','$_POST['archivito']) . "'";
$_POST[tipo] = "'" implode(','$_POST['tipo']) . "'";
   
$sql="insert into archivos(nombre,contenido,tipo)values
    ('$_POST[nombre]','$_POST[contenido]','$_POST[tipo]')"
;     
    if (
$result=mysql_query ($sql,$link)){echo '<script language= "Javascript"> alert("Archivo guardado correctamente");</script>';}
    else{echo 
'error:'.mysql_error($link);}
    
  }
?>

Estos son los errores que me salen:

Código HTML:
Ver original
  1. Warning: fopen() expects parameter 1 to be string, array given in C:\AppServ\www\UPLOAD_MULTIPLE\upload1.php on line 36
  2.  
  3. Warning: fread(): supplied argument is not a valid stream resource in C:\AppServ\www\UPLOAD_MULTIPLE\upload1.php on line 37
  4.  
  5. Warning: fclose(): supplied argument is not a valid stream resource in C:\AppServ\www\UPLOAD_MULTIPLE\upload1.php on line 39
  6.  
  7. Warning: implode() [function.implode]: Bad arguments. in C:\AppServ\www\UPLOAD_MULTIPLE\upload1.php on line 40
  8.  
  9. Warning: implode() [function.implode]: Bad arguments. in C:\AppServ\www\UPLOAD_MULTIPLE\upload1.php on line 41
  10.  
  11. Warning: implode() [function.implode]: Bad arguments. in C:\AppServ\www\UPLOAD_MULTIPLE\upload1.php on line 42
  #2 (permalink)  
Antiguo 26/04/2014, 12:32
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: Subir varios archivos a la vez con php y Mysql

El primer error que te da es porque le estas pasando un arreglo al fopen y no un string. Si estas subiendo varios archivos $_FILES["archivito"]["tmp_name"] es un arreglo con tantas posiciones como archivos hayas subido al igual que el size,name y todas las posiciones del arreglo $_FILES, mi recomendacións seria que lo recorras con un foreach o un for. algo asi:

Código PHP:
Ver original
  1. No capto bien la parte del post ya que tienes un $_POST['archivito'] y el $_FILEs tiene el mismo nombre, no se decirte si es un error o efectivamente repites los nombres, sin embargo, en caso de efectivamente con un implode puedes separar las posiciones del arreglo de la variable $_FILES, pero el abrir los archivos o especificas cual quieres abrir con el fopen o los recorres ejecutando tu lógica.
  2. for($i=0;$i>=count($_FILES['archivito']['tmp_name'])-1;i++){
  3. $archivo= $_FILES["archivito"]["tmp_name"][$i];
  4. $tamanio= $_FILES["archivito"]["size"][$i];
  5. $tipo   = $_FILES["archivito"]["type"][$i];
  6. $nombre = $_FILES["archivito"]["name"][$i];
  7. ///......TOda la lógica que tienes.....
  8. }


Asi lo ejecutarás sobre cada campo.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos

Etiquetas: formulario, html, mysql, select, sql, vez
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:39.