Foros del Web » Programando para Internet » PHP »

Simple XML - Copiar fichero carpeta

Estas en el tema de Simple XML - Copiar fichero carpeta en el foro de PHP en Foros del Web. Hola, estoy subiendo campos de un XML a una base de datos y quiero grabar el propio fichero XML en una carpeta del servidor. El ...
  #1 (permalink)  
Antiguo 07/10/2012, 12:48
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años
Puntos: 1
Simple XML - Copiar fichero carpeta

Hola,

estoy subiendo campos de un XML a una base de datos y quiero grabar el propio fichero XML en una carpeta del servidor. El nombre del fichero quiero que sea un tag del XML.

Hasta el tag se acceder y la ruta destino tambien la tengo, lo que no se es la estructura para ponerlo. (copy...move_upload_file)

Un saludo
  #2 (permalink)  
Antiguo 07/10/2012, 13:24
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 7 meses
Puntos: 131
Respuesta: Simple XML - Copiar fichero carpeta

Si el archivo esta en el server debes usar copy para copiarlo

Pero si lo vas a subir por primera ves debes usar move_uploaded_file, una vez subido usar rename para renombrarlo
  #3 (permalink)  
Antiguo 13/10/2012, 06:29
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años
Puntos: 1
Respuesta: Simple XML - Copiar fichero carpeta

Hola,

tengo todos los ficheros subidos en el servidor, los extraigo de un ZIP en una carpeta. Luego voy leyendo cada xml para insertar los datos que necesito. El problema lo tengo al usar rename

rename("\Files\.....\CRUD\Temporal\xx.xml", "\Files\.....\CRUD\Temporal\'$DatosFactura->Factura'.xml");

El fichero final se queda correcto con el nombre del tag del xml que quiero (Factura) pero el problema es que no conozco el nombre de los ficheros de origen, hay alguna forma para hacer rename sin saber el nombre del fichero.

Esto es lo que uso para ir leyendo los ficheros 1 a 1:

$files_xml[] = simplexml_load_file($dir."\\".$file);
foreach ($files_xml as $xml){}

¿Se podría usar algo así?

rename($files_xml, "C:\Files\.....\CRUD\Temporal\'$DatosFactura->Factura'.xml");

Gracias.
  #4 (permalink)  
Antiguo 13/10/2012, 14:52
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 7 meses
Puntos: 131
Respuesta: Simple XML - Copiar fichero carpeta

Los subes manualmente?
  #5 (permalink)  
Antiguo 13/10/2012, 15:11
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años
Puntos: 1
Respuesta: Simple XML - Copiar fichero carpeta

Tengo el formulario para subir un zip con varios xml, lo unico que se extraen con el nombre que tiene el fichero de origen y ese no lo conozco.

Código PHP:
if(isset($_POST['submit']))
{
$inicio=$_FILES['file']['tmp_name'];

$zip = new ZipArchive;
if (
$zip->open($inicio) === TRUE) {
    
$zip->extractTo('C:\Files\....\CRUD\Temporal');
    echo 
'ok';
}

else 
{
echo 
"Solo se permite fichero zip";
}



$dir='Files\...\CRUD\Temporal';
$handle opendir($dir); 
    
while (
$file readdir($handle))

if (
is_file($dir."\\".$file)) 

{
$files_xml[] = simplexml_load_file($dir."\\".$file); 
  #6 (permalink)  
Antiguo 15/10/2012, 08:08
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años
Puntos: 1
Respuesta: Simple XML - Copiar fichero carpeta

Sabe alguien porque me aparece este error?

Warning: rename(C:\wamp\www\CRUD\kk\'F1_01_41.xml'.xml,C:\w amp\www\CRUD\jj\'S7201N01'.xml) [function.rename]: El sistema no puede encontrar el archivo especificado. (code: 2) in C:\wamp\www\CRUD\indice.php on line 42

indice.php es el fichero que ejecuto donde esta el formulario para subir el fichero zip. El fichero se encuentra en esta ruta C:\wamp\www\CRUD.

El nombre del fichero inicial es este 'F1_01_41.xml' y este es el que quiero que se grabe 'S7201N01'.xml

Esto lo que pongo para que cambie el nombre.

rename("C:\wamp\www\CRUD\kk\'$file'.xml","C:\wamp\ www\CRUD\jj\'$Factura->CodigoFactura'.xml")

Etiquetas: fichero, simple, xml, carpetas
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 21:47.