PHP - Convertir una ruta

 
Vista:

Convertir una ruta

Publicado por Joaquim (1 intervención) el 23/08/2007 13:45:49
Hola a todos,
Tengo un problema al convertir una ruta obtenida mediante un input type=’file’ de un formulario.
Quiero obtener una ruta parcial (“imatges/fotos/img1.jpg") a partir de la ruta ("F:\MiWeb\imatges\fotos\img1.jpg")
Lo hago manualmente y funciona correctamente. Al hacerlo con el dato del formulario me aparecen dos barras \\ y no las reemplaza.
Alguien me puede ayudar, gracias

<?php
if(isset($_POST['guardar'])){
echo 'Form: <br>';
$vt_imatge = $_POST['f_imatge'];
$tag_ini = 'MiWeb/';
$vt_imatge = ereg_replace("\%5C","/",$vt_imatge);
$vt_imatge = substr( $vt_imatge, (strpos( $vt_imatge, $tag_ini )+1) + strlen( $tag_ini )-1);
echo $vt_imatge . '<br>';
echo '<br>';
echo 'Manual: <br>';
$vt_img = "F:\MiWeb\imatges\img1.jpg";
$vt_img = ereg_replace("\%5C","/",urlencode($vt_img));
$vt_img = substr( $vt_img, (strpos( $vt_img, $tag_ini )+1) + strlen( $tag_ini )-1);
echo $vt_img . '<br>';
}
?>
<table>
<form name="form1" method="post" action="<?echo $_SERVER['PHP_URI'];?>">
<tr><td><input type = "file" name = "f_imatge" size = "40" onchange=""></td></tr>
<tr><td><input type="submit" name="guardar" value="Guardar" /></td></tr>
</form>
</table>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Convertir una ruta

Publicado por Nicolás (154 intervenciones) el 26/08/2007 19:13:59
Quizá ya lo hayas resuelto... si no es asi, aquí mi ayuda:

El problemas es que estas utilizando $_POST['f_imatge'] como el path cuando es solo el nombre del archivo.
Lo que deberías hacer es conseguir el path completo del archivo, lo cual puedes hacer con un campo hidden y algo de javascript

<form name="form1" method="post" action="<?echo $_SERVER['PHP_URI'];?>">
<tr><td><input type = "file" name = "f_imatge" size = "40" onchange="document.form1.nombre.value=document.form1.f_imatge.value"></td></tr>
<tr><td><input type = "hidden" name = "nombre" value=""></td></tr>
<tr><td><input type="submit" name="guardar" value="Guardar" /></td></tr>
</form>

Este formulario enviará el archivo y la variable $_POST['nombre'] contendrá el path absoluto del archivo en la máquina cliente.

Tendrás que limpiar un poco ese string, pues contendrá dobles \\

<?php
if (isset($_POST['guardar'])) {
$path = $_POST['nombre'];
$path = str_replace("\\\\", "\\", $path);
}
?>

Con eso ya tienes el path absoluto limpito. A partir de ahí, puedes aplicarle el código que quieras para quitarle parte del path.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar