Foros del Web » Programando para Internet » PHP »

Problemas con input file

Estas en el tema de Problemas con input file en el foro de PHP en Foros del Web. Hola a todos, tengo un formulario para poder guardar archivos de tipo imagen en una base de datos, y lo que hago es utilizar un ...
  #1 (permalink)  
Antiguo 03/08/2009, 05:21
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
Puntos: 0
Problemas con input file

Hola a todos,

tengo un formulario para poder guardar archivos de tipo imagen en una base de datos, y lo que hago es utilizar un archivo guardar.php al que mando todos los datos del formulario. Estos datos los recibe bien pero del "input file" me devuelve toda la ruta y sólo necesito el nombre del archivo. Para solucionar esto utilizo "filename" pero no me funciona porque me esta devolviendo datos de la siguiente forma:

C:\\Documents and Settings\\Mis documentos\\Mis imágenes\\494556.jpg

como veis me pone dos barras "\\" y encima no es la barra "/" con lo cual "filename" no fuciona bien, se me ocurre utilizar un "for" para cambiarlas, pero antes me gustaría saber si esto se puede cambiar sin tener que añadir mas codigo.

Un saludo.
  #2 (permalink)  
Antiguo 03/08/2009, 05:39
 
Fecha de Ingreso: julio-2009
Mensajes: 118
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Problemas con input file

eso es seguramente porque tienes las magic quotes activadas

Prueba a poner este código al principio de tu página:



Código PHP:
<?php
if (get_magic_quotes_gpc())
{
        function 
strips(&$arr,$k="")
        {
            if (
is_array($arr)) 
            {
            foreach(
$arr as $k=>$v)
            {
            if (
strtoupper($k) != "GLOBALS"strips($arr["$k"]);}
            } 
            else 
            {
            
$arr stripslashes($arr);
            }
        }
    
strips($_POST);
}
?>
  #3 (permalink)  
Antiguo 03/08/2009, 10:50
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
Puntos: 0
Respuesta: Problemas con input file

Gracias por tu respuesta,

me ha servido en parte, pues me ha quitado la duplicacion de las barras pero me sigue poniendo la barra que no es, por si acaso el he aplicado el basename igualmente y no ha funcionado.

Asi que he tenido que crear el siguiente codigo para cambiar las barras:

$archivo_mal = $_POST['ofer'];

$conta = strlen($archivo_mal);
for ($i<=0;$i<$conta+1;$i++)
{
$caracter=substr($archivo_mal,$i,1);

if ($i==2)//siempre la primera barra sera despues de la letra de unidad y dos puntos(c:)
{
$barra=$caracter;
//echo 'Esta es la barra mala, ' .$barra;
}

if($caracter==$barra)
{
$barra_ok="/";
$caracter=$barra_ok;
//echo 'Esta es la barra buena, ' .$caracter;
}

$direccion_correcta=$direccion_correcta.$caracter;
}

//echo $direccion_correcta;
$archivo_bien = basename($direccion_correcta);
//echo $archivo_bien;

Un saludo.
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 05:10.