SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: sheilac en Sábado 10 de Noviembre de 2007, 22:11

Título: Codigo Php Subir Carpeta De Imagenes
Publicado por: sheilac en Sábado 10 de Noviembre de 2007, 22:11
tengo que subir en el sitio que hice todas las imagenes de una carpeta al servidor
esto es parte del codigo (la parte principal)
Código: Text
  1.  
  2.    $d = dir('c:\imagenesasubir');
  3.   
  4.    // Crea una lista de los ficheros
  5. // del directorio
  6.    while($file = $d->read()) {
  7.        if ($file != "." && $file != "..") {
  8.           echo $file . '<br>';
  9.   $upload = ftp_put($id_con, "".$file, "c:/imagenesasubir/".$file, FTP_BINARY);
  10.            }
  11.        }
  12.   
  13.    $d->close();
  14.  
  15.  
pero no hace nada.
yo no tengo disco c pero lo probe con una carpeta
 $d = dir('I:\prueba1'); y no hace nada
es que tengo que tener la misma carpeta tanto en mi maquina como arriba en el servidor??
 si hago un echo de $d me da vacio

alguien me puede indicar donde esta el error por favor??
la otra parte del codigo no la puse porque  se conecta al servidor y se loguea.

no selecciono nada paso el camino de d por codigo ya que tengo que subir todas las imagenes que esten en esa carpeta

Desde ya muchas gracias
Título: Re: Codigo Php Subir Carpeta De Imagenes
Publicado por: -DriverOp- en Sábado 10 de Noviembre de 2007, 22:39
Ese "C:\" indica una posición física que puede estar fuera del alcance del servidor web, por lo tanto la clase dir() no puede acceder a ella. Me parece que la solución es que uses paths relativos al home virtual del servidor, por ejemplo podría ser:

$d = dir("/imagenesasubir/");
Título: Re: Codigo Php Subir Carpeta De Imagenes
Publicado por: sheilac en Domingo 11 de Noviembre de 2007, 23:38
hola disculpen insista
ya hice la modificacion que me dijistes DriverOp pero no hay caso el codigo no hace nada,
lo que tengo qeu hacer es que tengo una carpeta subirimagenes que tengo que subir todas las imagenes que tiene al sitio.
 :(
todos los ejemplos que veo es de subir de a una imagen pero esta carpeta va a tener decenas de imagenes y no quieren seleccionarlas de a una
con este codigo pense me subia todo el directorio del cual pasaba la direccion pero veo no lo hace.
alguien me podria asesorar porque ???
graciasssss
Título: Re: Codigo Php Subir Carpeta De Imagenes
Publicado por: F_Tanori en Lunes 12 de Noviembre de 2007, 04:45
A mi me ha funcionado de esta manera

Código: Text
  1. <?php
  2.  
  3. error_reporting(0);
  4.  
  5. $d = dir('C:\imagenesasubir\\'); # dir('file:///C:/imagenesasubir/');
  6.  
  7. // Crea una lista de los ficheros
  8. // del directorio
  9.  
  10. #print_r($d);
  11.  
  12. $PathServer="imagenesasubir";   #@getcwd()."\\imagenesasubir";
  13. $id_con = ftp_connect("127.0.0.1");
  14. $resultado_login = ftp_login($id_con, "ftanori", "pass");
  15.  
  16.  
  17. if ($resultado_login)
  18.   {
  19.     echo "<ul>";
  20.         while($file = $d->read()) {
  21.             if ($file != "." && $file != "..") {
  22.          echo "<li>".$d->path.$file . "\n<br />";
  23.  
  24.           $remoto=$PathServer."\\".$file;
  25.           $local=$d->path.$file;
  26.  
  27.           $upload = ftp_put($id_con, $remoto,$local, FTP_BINARY);
  28.  
  29.  
  30.           if ($upload)
  31.             {
  32.               echo "Subido: $file \n";
  33.             }
  34.           else
  35.             {
  36.               echo "Hubo un problema con :$file\n";
  37.             }
  38.  
  39.           echo "</li><br /><br />";
  40.           }
  41.             }
  42.        @ftp_close($id_con);
  43.        $d->close();
  44.      echo "</ul>";
  45.   }  
  46. ?>
  47.  

algunas lineas se pueden omitir :P eran solo para depurar


te marca algun error ? indicalo

Saludos
Título: Re: Codigo Php Subir Carpeta De Imagenes
Publicado por: sheilac en Martes 13 de Noviembre de 2007, 00:39
Perdon haya resultado tan dura de entender esta parte
hice lo que me mandastes casi tal cual pero no me hace nada y lo mas raro es que tampoco me da ningun error
les copio el codigo completo sin omitir nada
Código: Text
  1.  
  2. <?
  3. require('includes/application_top.php');
  4. $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');
  5. if (tep_not_null($action)) {
  6. error_reporting(0);
  7. $d = dir('C:\imagenesasubir');
  8. $PathServer="images";  
  9. $id_con = ftp_connect("www.misitio.com");
  10. // inicio de sesion con nombre de usuario y contrasenya
  11.   
  12. $resultado_login = ftp_login($id_con, "usuarioftp", "contraseña");
  13. if ((!$id_con) || (!$resultado_login)) {
  14.        echo "¡La conexión FTP ha fallado!";
  15.        echo "Se ha intentado la conexion con blablabla para el " .
  16.              "usuario php_ftp";
  17.        exit;
  18.    } else {
  19.        echo "Conectado con psico libros, para el usuario php_ftp";
  20.     echo "<ul>";
  21.         while($file = $d->read()) {
  22.             if ($file != "." && $file != "..") {
  23.          echo "<li>".$d->path.$file . "\n<br />";
  24.  
  25.           $remoto=$PathServer."\\".$file;
  26.           $local=$d->path.$file;
  27.  
  28.           $upload = ftp_put($id_con, $remoto,$local, FTP_BINARY);
  29.  
  30.           if ($upload)
  31.             {
  32.               echo "Subido: $file \n";
  33.             }
  34.           else
  35.             {
  36.               echo "Hubo un problema con :$file\n";
  37.             }
  38.           echo "</li><br /><br />";
  39.           }
  40.             }
  41.        @ftp_close($id_con);
  42.        $d->close();
  43.      echo "</ul>";
  44.   }  
  45.  
  46. }
  47.   else {
  48. ?>
  49. <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
  50. <html <?php echo HTML_PARAMS; ?>>
  51. <head>
  52. <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
  53. <title><?php echo TITLE; ?></title>
  54. <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
  55. <script language="javascript" src="includes/general.js"></script>
  56. </head>
  57. <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();">
  58. <div id="spiffycalendar" class="text"></div>
  59. <!-- header //-->
  60. <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
  61. <!-- header_eof //-->
  62.  
  63. <!-- body //-->
  64. <table border="0" width="100%" cellspacing="2" cellpadding="2">
  65.   <tr>
  66.     <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
  67. <!-- left_navigation //-->
  68. <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
  69. <!-- left_navigation_eof //-->
  70.     </table></td>
  71. <!-- body_text //-->
  72.     <td width="100%" valign="top">
  73.        Presione el botón para subir las imágenes...
  74.        <h3>LAS IMAGENES TIENEN QUE ESTAR EN <B>C:\IMAGENESASUBIR</B> !!! </h3>
  75. <?
  76.   echo tep_draw_form('subirimg','subirimg.php','action=subir', 'post', 'enctype="multipart/form-data"');
  77. //  echo 'Archivo categoria: ' . tep_draw_file_field('categoria',true);
  78.   echo '<br>       ' . tep_image_submit('button_save.gif', IMAGE_SAVE);
  79. ?>
  80.        </td>
  81. <!-- body_text_eof //-->
  82.   </tr>
  83. </table>
  84. <!-- body_eof //-->
  85.  
  86. <!-- footer //-->
  87. <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
  88. <!-- footer_eof //-->
  89. <br>
  90. </body>
  91. </html>
  92. <?php require(DIR_WS_INCLUDES . 'application_bottom.php');
  93.  }
  94.  ?>
  95.  
  96.  
  97.  
se habre primero un formulario que tiene el mensaje
Presione el botón para subir las imágenes...
LAS IMAGENES TIENEN QUE ESTAR EN C:\IMAGENESASUBIR !!!

y el boton grabar al presionar en el boton grabar me deberia subir las imagenes que estan en c:\imagenesasubir a la carpeta imagenes a subir en mi sitio
que ya esta creada y con todos los permisos respectivos
pero no me las guarda las imagens  (por lo menos no en esta carpeta) y lo mas raro es que tampoco me tira ningun error que me pueda orientar que hago mal.
si me da el mensaje que se ha conectado al sitio que le mande ese mensaje si lo manda. asi que la conexion si la hace pero hasta ahi llego :(
la verdad estoy totalmente desconcertada.
las imagenes las busco en la carpeta /httpdocs/imagenesasubir en mi sitio no???
desde ya muchas gracias
Título: Re: Codigo Php Subir Carpeta De Imagenes
Publicado por: F_Tanori en Martes 13 de Noviembre de 2007, 02:49
Hola


Segun veo el problema es asi:


En el servidor tienes el archivo que contiene el codigo que muestras ahora si lo que tu hace es

Citar
$d = dir('C:\imagenesasubir');

Estas indicando que PHP busque en el C:\imagenesasubir del servidor ( recuerda que PHP es del lado del servidor , ademas si es linux las rutas no son iguales windows )


Pues el PHP no puede accesar al disco del usuario, lo que tendrias que hacer es seleccionar archivo por archivo (input type=file' ) y enviarlos con JavaScript
como lo hacen los clientes FTP web

Ej.
http://www.net2ftp.com/homepage/screenshots/upload.jpg (http://www.net2ftp.com/homepage/screenshots/upload.jpg)

incluso usar un FTP WEB

Ej.
http://www.net2ftp.com/ (http://www.net2ftp.com/)

que creo que es lo que quieres evitar.....


Otra opcion seria instalar un servidor local que pueda accesar al disco de usuario y de ahi los suba al servidor a traves de FTP , lo cual le quitaria las ventajas de un sistema web

Disculpa si no lo especifique en el otro mensaje pero las pruebas fueron de manera local

Código: Text
  1. $id_con = ftp_connect("127.0.0.1");
  2.  

pero si modifico el servidor FTP y lo ejecuto desde mi servidor local funciona pero, no si subo el script , por lo comentado antes ( PHP  Server Side)


Cita de: "sheilac"
y lo mas raro es que tampoco me tira ningun error que me pueda orientar que hago mal.

es por que no reporta errores;

comenta o quita la linea esta...
Código: Text
  1. error_reporting(0);
  2.  

o cambiala por....

Código: Text
  1. error_reporting(E_ALL)
  2.  

http://www.php.net/error_reporting (http://www.php.net/error_reporting)

para que puedas ver los mensajes de error

Saludos
Título: Re: Codigo Php Subir Carpeta De Imagenes
Publicado por: sheilac en Martes 13 de Noviembre de 2007, 19:23
ok entendi, muchisimas gracias
disculpa pero son mis primero trabajos con php y nunca termino de aprender
 :D

para probarlo si funciona es mismo tambien en el servidor.
no en mi maquina local.
Subo una carpeta mismo de esa maquina al sitio.
Muchisimas Graciassssssss
has sido por demas amable  :lol: