PHP - Problema al enviar archivos a un sftp por php

 
Vista:
sin imagen de perfil

Problema al enviar archivos a un sftp por php

Publicado por daniel (3 intervenciones) el 28/10/2014 07:05:14
Buen día Amigos del foro una vez mas recurro a su valiosa ayuda para poder resolver un problema que tengo.

Tengo una aplicacion donde me muestra registros almacenados en un BD.
al principio de donde empieza estos registros tengo un checkbox que la funcionalidad de este checkbox es seleccionar los registros para que me genere un pdf con los registros que selecciono, si selecciono dos checkbox la aplicacion me genera dos pdf con su nombre ejemplo1.pdf y ejemplo2.pdf, estos archivos en pdf que genero los almaceno en una carpeta para posteriormente su envio a un servidor sftp.

La creacion de los archivos en pdf no tengo ningun problema si no el problema es al momento de que se generan estos archivos y se envían al servidor sftp ya que los archivos no se envian desde mi servidor al servidor sftp.


Pongo el codigo del envio de los archivos.

Pongo el select donde almaceno los nombres de los archivos en una bd y ejecuto esta consulta de acuerdo a la seleccion con los checkbox llamo los archivos para su envio al sftp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
$urnac="select id_factura, urn from factura where id_factura=".$row['id_factura'];
$urnac1=$oConn->execute($urnac);
	while($rowurn=$oConn->getRow($urnac1)){
 
incluyo librerias
set_include_path(implode(PATH_SEPARATOR, array(
        realpath(dirname(__FILE__) . '/phpseclib'),
        get_include_path(),
)));
// Incluimos la librería 
require_once 'Net/SFTP.php';
 
Datos de conexion
$strServer1 = '192.0.0.0';
$intPort1 = 22;
$strUsername1 = 'usr';
$strPassword1 = 'pass';
 
Verifico si la conexion se realizo
$objFtp1 = new Net_SFTP( $strServer1 , $intPort1 );
// Realizamos el logeo 
if (!$objFtp1 ->login( $strUsername1 , $strPassword1 )) {
         exit( 'Login Failed' );
}
 
En este bloque creo una carpeta dentro del servidor sftp con la fecha y hora que se envian los archivos
$cargasto='';
date_default_timezone_set('America/Mexico_City');
	echo "fecha".$fechag=date("Ymd");
	$horag=date("His");
	$cargasto=$fechag.'_'.$horag;
$objFtp1->mkdir('images/CEVA_MX_'.$cargasto);
 
me cambio a la carpeta que cree en el bloque anterior para depositar los archivos en esta carpeta
$objFtp->chdir('CEVA_MX_'.$carcosto). "\r\n";
 
de acuerdo a la seleccion de los checkbox son los archivos que se van enviar al servidor sftp y son los nombres de los archivos que selecciono con el chebox
$strLocalFile='';
$strLocalFile = $rowurn['urn'].'.pdf';
 
LLamo a los archivos que selecciono dentro del mi servidor en la carpeta que corresponde y lo almaceno en una variable.
$strData = file_get_contents( 'costo/'.$strLocalFile )
 
los archivos que selecciono con el checkbox los coloco en el servidor sftp
$objFtp->put($strLocalFile, $strData);
 
cierro conexion
$objFtp1->disconnect();
 
///cierro el while de la consulta
}

Espero que me ayuden y espero que me pude dar a entender
Gracias SAludos
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
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar archivos a un sftp por php

Publicado por xve (6935 intervenciones) el 28/10/2014 10:48:46
Hola Daniel, donde te da el error? o donde se queda el proceso?

Te llega a generar las carpetas?
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
sin imagen de perfil

Problema al enviar archivos a un sftp por php

Publicado por daniel (3 intervenciones) el 28/10/2014 19:45:01
Gracias xve por responder,

El problema es que no me arroga ningún error y la carpeta si me la genera. pero no me deposita los archivos en la carpeta que se genera automáticamente .

Saludos
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
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema al enviar archivos a un sftp por php

Publicado por xve (6935 intervenciones) el 28/10/2014 21:35:14
Hola Daniel, el problema creo que puede estar aqui...

Tu creas la carpeta dentro de la carpeta images
1
$objFtp1->mkdir('images/CEVA_MX_'.$cargasto);

Pero luego, cuando te posicionas dentro de la carpeta, no pones la carpeta images, y utilizas otra variable:$carcosto, que no se ver que valor tiene...
1
$objFtp->chdir('CEVA_MX_'.$carcosto);

Puedes poner los mismos valores que cuando la creas?
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
sin imagen de perfil

Problema al enviar archivos a un sftp por php

Publicado por daniel (3 intervenciones) el 29/10/2014 00:59:59
Gracias xve por la ayuda.

Ya intente lo que me comentaste pero sin ningun resultado.

Ahora el problema es que ni siquiere me crea la carpeta lo mas extraño es que quito una linea de codigo si me muestra la carpeta pero no me hace la transferencia te explico con el codigo que pongo

Todo bien
DATOS DE CONEXION
1
2
3
4
5
6
7
8
9
10
11
12
13
$strServer = '192.0.0.0';
$intPort = 22;
$strUsername = 'usrt';
$strPassword = 'usr';
 
////CREAMOS CARPETA/////
$carcosto='';
date_default_timezone_set('America/Mexico_City');
	$fechac=date("Ymd");
	$horac=date("His");
	$carcosto=$fechac.'_'.$horac;
$objFtp->mkdir('Images/CEVA_MX_'.$carcosto);
$objFtp->chdir('Images/CEVA_MX_'.$carcosto);->-->->si dejo esta linea no me crea la carpeta si quito esta carpeta si me la crea la carpeta

Envio de archivos

1
2
3
4
5
6
7
$strLocalFile='';
$strLocalFile = $rowurn['urn'].'.pdf';
$strData = file_get_contents( 'costo/'.$strLocalFile );
 
$objFtp->put($strLocalFile, $strData);
 
$objFtp->size($strLocalFile)

Es muy raro esto y lo mas raro que no me arroja ningun error no se que pueda ser

Gracias nuevamente por toda la ayuda Saludos
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