Foros del Web » Programando para Internet » PHP »

subida de archivos!!

Estas en el tema de subida de archivos!! en el foro de PHP en Foros del Web. q mas amigos, les escribo porq tngo un problema con la subida de los archivos, resulta q cuando los subo me carga un temporal, y ...
  #1 (permalink)  
Antiguo 10/02/2006, 16:52
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
subida de archivos!!

q mas amigos, les escribo porq tngo un problema con la subida de los archivos, resulta q cuando los subo me carga un temporal, y no e encuentro manera de solucionarlo, aki le envio le codigo:

Código PHP:
<?php 
include("../Connections/conexion.php");
$link=$conexion;

$extension explode(".",$archivo_name); 

$num count($extension)-1
echo 
$archivo_name;
if(
$extension[$num] == "zip" || $extension[$num] == "doc" || $extension[$num] == "txt" || $extension[$num] == "ppt" || $extension[$num] == "rar"

if(
$archivo_size 99999// 99kB

echo 
$archivo;
if(!
move_uploaded_file($_FILES['archivo']['tmp_name'],"../archivos/" .$archivo_name))


$msj"Error al copiar el archivo"

else 

//****************Dar orden orden ***********;

 

//*******************************************
// verifico la existencia del archivo
$exitss "SELECT * FROM archivos WHERE file_name ='".quitar($archivo_name)."' ";

$resulext mysql_query($exitss,$link); 
        
            if (
$ex mysql_fetch_array($resulext))  
        
            { 
                
$msj"El archivo seleccionado ya se encuentra entre los archivos previamente cargados!!!"
            
            } else {


$d"/www/IHM/archivos/";
$insertSQL sprintf("INSERT INTO archivos 
(file_path,file_name) VALUES ('%s', '%s')"
,
trim($d),
trim($archivo_name));
$Result1 mysql_query($insertSQL$link);
$msj"Archivo subido con exito";
}
 



else 

$msj"El archivo supera los 30kb"


else 

$msj"El formato de archivo no es valido, solo .zip, .doc,txt o ppt  o verifique que todos los campos esten llenos !!!"

?>
y el archivo q carga es este:

Código:
C:\WINDOWS\TEMP\php128.tmp
esperome puedan ayudar. saludos
  #2 (permalink)  
Antiguo 11/02/2006, 03:46
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
No se ve le asignes valor a $archivo_name, de hecho mandas a imprimir el valor de a variable ¿te muestra el nombre del archivo correcto?.

La validación que haces referente al tipo de archivo no es segura (comentario al margen), te sugiero revizes las FAQ (#12), te ayudará en ambas cuestiones.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 11/02/2006, 09:53
 
Fecha de Ingreso: enero-2006
Mensajes: 54
Antigüedad: 18 años, 3 meses
Puntos: 0
Hola, yo cargo archivos al servidor con de la siguiente forma y funciona correctamente, muy similar a la funcion que tu tienes, pruebala haber que pasa.

if ($archivo !="")
{
$name=$_FILES["archivo"]["name"];
$tmp_name=$_FILES["archivo"]["tmp_name"];
if (is_uploaded_file($tmp_name))
{
$path_to_image = './imagenes/'. $name;
if (move_uploaded_file($tmp_name, $path_to_image))
{
?>
<center>El Archivo ha Sido Cargado Correctamente</center>
<?
}
else
{
?>
<center>Ocurrió algún error al subir el fichero.</center> }
}
}

Y porsiacaso revisa tu formulario desde donde cargas el archivo porque el form debe estas asi:
<form name="nombre_form" action="xxx.php" method="post" enctype="multipart/form-data">

Ten en cuenta de no haber olvidado de poner el enctype="multipart/form-data".

Espero te haya ayudado en algo. Bye.
  #4 (permalink)  
Antiguo 11/02/2006, 13:08
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Cita:
No se ve le asignes valor a $archivo_name, de hecho mandas a imprimir el valor de a variable ¿te muestra el nombre del archivo correcto?.
la mando a mostrar para ver el tipo de arhcivo q sube, pero el me muestra el archivo como el q sale en el error de mi primer post.

csalazar voy a usar tu fincion a ver como me va, esa sube todo tipo de archivos?'
  #5 (permalink)  
Antiguo 12/02/2006, 19:52
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Pregunta subida de archivos!!

q mas panas aki stoy otra vez con mi problema de la subida de archivos, ya logre subir los archivos al servidor, ahora el detalle q tngo es como mostrarlos, osea tngo un problemita en la consulta, aki les envio el codigo de subida:
Código PHP:
<?
$conex
=mysql_connect('localhost','root');
mysql_select_db('db_ihm',$conex);
//tomo el valor de un elemento de tipo texto del formulario
//echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";
//datos del archivo
$nombre_archivo $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo $HTTP_POST_FILES['userfile']['size'];
//compruebo si las caract//echo $nombre_archivo;
if (( strpos($tipo_archivo"doc") || strpos($tipo_archivo"ppt") || strpos($tipo_archivo"pdf") || strpos($tipo_archivo"zip") || strpos($tipo_archivo"rar") || strpos($tipo_archivo"txt")) && ($tamano_archivo 300000)) {
    echo 
"La extensión o el tamaño de los archivos no es correcta.";
}else
    if (
move_uploaded_file($_FILES['userfile']['tmp_name'], "../ihm/archivos/" .$nombre_archivo)){
        echo 
"El archivo ha sido cargado correctamente.";
    
$d"/www/IHM/archivos/";
    
$sql "INSERT INTO archivos (id, file_name, file_path)";
    
$sql.= "VALUES ('$id', '$nombre_archivo', '$d')";
    
$result=mysql_query($sql);
    
    }else{
        echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }

?>
y el codigo de la consulta es el siguiente:

Código PHP:
<?php
    $conex
=mysql_connect("localhost","root");
    
mysql_select_db("db_ihm",$conex);
    
$sql"SELECT file_path,file_name FROM archivos WHERE id=$fid";
    
mysql_query($sql);
    
// get results
if($result mysql_query$sql$conex)) {
    
// if we have results
    
if($row mysql_fetch_array($result)) {
        
// get filename and path
        
$file_name $row['file_name'];
        
$file_path $row['file_path'];
        
// send the necessary headers.
        // i found that these work well.
        
header("Content-Type: application/unknown");
        
header("Content-Disposition: filename=$file_name");
        
// open the file for reading and start dumping it to the browser
        
if($fp fopen($file_path.$file_name"r")) {
            while(!
feof($fp)) {
                echo  
fgets($fp4096);
            }
            
// close the file
            
fclose($fp);
        }
    }
}
    echo 
"<a href=/www/IHM/archivos/?fid=".$row['id'].">".$row['file_name']."</a>"
?>
el problema nose si esta en la ultima linea cuando llamo al link, o en alguna otra parte; losd atos entran a la base bien bien, y los archivos los sube sin ningun problema... Saludos
  #6 (permalink)  
Antiguo 12/02/2006, 20:03
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
la mando a mostrar para ver el tipo de arhcivo q sube, pero el me muestra el archivo como el q sale en el error de mi primer post.
Ahí esta el error... pero como dije, no muestras cuando le asignas valor a esta variable, pero debe ser como te dicen: sobre $_FILES['tu_archivo']['name']
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 13/02/2006, 11:48
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Cita:
Ahí esta el error... pero como dije, no muestras cuando le asignas valor a esta variable, pero debe ser como te dicen: sobre $_FILES['tu_archivo']['name']
bueno no entendi cuando quisiste decir q el problema esta en el nombre del archivo, lo cierto es q imprimi la varuable q me guarda el nombre del archivo en una pagina y si lo tomo, y pude realizar la operacion de subida, el detalle q tngo ahorita es con la consulta de salida, q no muestra los datos de la descarga!!!!Saludos
  #8 (permalink)  
Antiguo 16/02/2006, 04:29
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... para empezar, al recojer el valor de la URL debes usar la variable superglobal $_GET.

No puedes tener el "link" en ese mismo script, el link ha de apuntar al archivo que contenga ese script independientemente:
Código HTML:
<a href="archivo_descargar.php?id=XX">Archivo</a> 
Además, debes especificar en las cabeceras el tipo de archivo del que se trata, no "unknown" como lo tienes ahora. Utiliza fread() en lugar de ese fopen() y demás.

Busca en el foro por "forzar descarga", hay muchos scripts.. en los comentarios del enlace que te dejo viene.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 16/02/2006, 13:09
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Cita:
Iniciado por jam1138

debes especificar en las cabeceras el tipo de archivo del que se trata, no "unknown" como lo tienes ahora. Utiliza

ok, lo q me dijiste acerca de la variable $_GET lo entendi, peor lo q no tngo idea es como hacer q descargue distintos tipos de archivos, ya q uso varios!!Saludos
  #10 (permalink)  
Antiguo 16/02/2006, 17:24
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
mmmm... veo que no guardas ese dato. Lo obtienes cuando haces:
Código PHP:
$tipo_archivo $HTTP_POST_FILES['userfile']['type']; 
Guarda ese dato también en tu BD en otro campo... y recuperalo en tu script de descarga:
Código PHP:
 header("Content-Type: ".$row['tipo']); 

(la validación que haces no es 100% confiable --creo ya lo comenté--. Ve la FAQ sobre subir ficheros)
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 16:24.