elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda en la subida de archivos en php !!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Duda en la subida de archivos en php !!!  (Leído 5,869 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Duda en la subida de archivos en php !!!
« en: 25 Abril 2007, 15:54 pm »

Hola:

Como podria subir archivos al servidor, sabiendo que el PHP.ini esta:

Código:
register_globals= off
Ya intente usando: $_FILES["archivo"]["name"] (para mostrar nombre), pero no logro obtener su nombre :S !!!

Por Ultimo, como puro testeo de mi aplicacion, subi manualmente las imagenes en el directorio que elijo (tmp/), para despues mover dichas imagenes con un nombre distinto a la carpeta fotos/ y asi tener un mejor control con las fotos y no tener problemas con la repeticion de los nombres, pero al realizar move_uploaded_file( $url.$buf, "fotos/".$buf ); y sigue marcando error al intenta mover la o las imagenes :( !!!

Sobre los permisos, los puse 0775, a todos los archivos .php y carpetas...

OJO: uso slackwrae linux, y estoy testeando en mi propia PC, tengo Apache, PHP y MySQL corriendo....

bye bye


« Última modificación: 25 Abril 2007, 17:42 pm por Diabliyo » En línea

LuffyFF


Desconectado Desconectado

Mensajes: 754


Final Fantasy XIII


Ver Perfil WWW
Re: Duda en la subida de archivos en php !!!
« Respuesta #1 en: 25 Abril 2007, 19:07 pm »

Para lo primero:
Intenta envez de $_FILES
Con
$HTTP_POST_FILES["archivo"]["name"];


La variable $url es el path no?

Y la carpeta fotos deberia tener 777 para que puedas escribir.


De todos modos, intenta esto

Citar
$dirfinal "fotos/".$buf."";

if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
     
copy($HTTP_POST_FILES['archivo']['tmp_name'], $dirfinal);

Salu2.


En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Duda en la subida de archivos en php !!!
« Respuesta #2 en: 26 Abril 2007, 05:00 am »

Hola:

Gracias por contestar, pero veo que no leiste bien mi post amigo Mugiwara, la variable $HTTP_POST_FILES[][], no se puede utilizar, ya que el php.ini esta configurado para no registrar variables globales, osease:

register_globals=off

Oviamente el uso de POST (y sus derivados) no se puede utilizar, ya que esta configuracion del php.ini no lo permite.

Y el permiso: 777 indica:

7 = rwx = el usuario cerador puede hacer de todo
7 = rwx = el usuario que sea del GRUPO puede hacer de todo
7 = rwx = quien NO sea del grupo y cualquiera puede hacerle de todo

Osease, esta configuracion es INAPROPIADA ya que permite que cualquiera pueda modificarte el archivo :S !!...

Lo mas apropiado es: 775

7 = rwx = el usuario creador puede hacer de todo
7 = rwx = el usuario que sea del GRUPO puede hacer de todo
5 = r-x = el que NO sea del grupo o cualquier solo puede leer y ejecutar.

Mi problema aun esta sin resolver :(, ya que no se permite el uso de POST, por la configuracion del php.ini

Y lo digo porke muchos SERVIDORES optan por esta configuracion, segun por mas "seguridad", pero en fin, resulta ser solo un dolor de cabeza :( !!

Por Ultimo: si en efecto la variable $url es el directorio donde subo las fotos al momento de que el usuario las va agregando en la parte de 'Agregar Fotos', al FINALIZAR este proceso se toman de dicho directorio y son movidas al directorio que les corresponde, pero oviamente por SEGURIDAD al moverlas, las muevo con un nombre DISTINTO, este nombre es un NUMERO consecutivo para evitar problemas de REPETICION de nombres o numeros en imagenes !!!

bye bye
« Última modificación: 26 Abril 2007, 05:05 am por Diabliyo » En línea

Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Re: Duda en la subida de archivos en php !!!
« Respuesta #3 en: 26 Abril 2007, 10:15 am »

Prueba un print_r($_FILES) o print_r($_FILES['archivo']) y haber que te sale.

Saludos.
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
LuffyFF


Desconectado Desconectado

Mensajes: 754


Final Fantasy XIII


Ver Perfil WWW
Re: Duda en la subida de archivos en php !!!
« Respuesta #4 en: 26 Abril 2007, 10:21 am »

Mira...he leido perfectamente tu post.

No te confundas.

Register globals es para no registrar variables globales.

O sea, si yo recibo un mensaje via POST
Que sea $_POST["nombredelcampo"].
Si register_globals está off, entonces $nombredelcampo no sería válido.
Si estuviera ON, $nombredelcampo sería válido.

$HTTP_POST_FILES es lo mismo que $_FILES.

O sea, lo que register_globals ON haria en $HTTP_POST_FILES seria pasar el valor, por ej.
$HTTP_POST_FILES["campoPOST"]
pasarlo a $campoPOST.
Eso es lo que ahce register_globals activado. Si no está activado, simplemente no genera la variable esa.

Bien...lo de los permisos, no le des 777 y no te va a funcionar nunca.
El ultimo 7 es el que da permisos de escritura.
Si no quieres que nadie escriba, ni el propio apache/php podrá escribir sobre esa carpeta, entonces, en teoría no te funcionaría nunca.
PHP no tiene usuario propio por defecto para actuar, por lo cual actua como nobody. Entonces, puedes darle chown nobody a la carpeta esa, o darle 777, en teoría es lo mismo.

Y además, nunca dije que le dieras 777 a ningún archivo archivo. Sino a la carpeta para que se pudieran copiar los archivos. Los archivos que copies ,dejalos con permisos normales, no importa, lo que importa es que el directorio sea escribible por nobody.

Y sobre lo ultimo...

Yo agarre tu ejemplo, la variable $buf pense que seguramente era la variable con el nombre generado, bueno consideralo asi.
Y que luego $dirfinal sea el path + $buf, que seria el nombre generado, ese seria el destino final del file y quedaria con ese nombre
PATH + $buf.

Y luego mueve el archivo temporal que se ha subido en la carpeta temporal y se escribe sobre $dirfinal, o sea PATH + $buf. Y no es que vaya a escribir
path/$bufNOMBREDELFILE.jpg
sino que seria path/$buf.



Saludos
En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Duda en la subida de archivos en php !!!
« Respuesta #5 en: 26 Abril 2007, 16:43 pm »

Prueba un print_r($_FILES) o print_r($_FILES['archivo']) y haber que te sale.

Saludos.

Hola:

Me sale simplemente este numero asi: 1

Y mas o menos este es el code:

Código:
if( $_GET["evento"]=="carga" )
{
//resultado es: Eviaste () (1)
echo "Enviaste: <b>(". $_FILES["foto"]["name"]. ")</b> <b>(". print_r($_FILES["foto"]). ")</b>";
}
else
{
echo "<form action=\"index.php?modulo=agregar&evento=carga\" enctype=\"multipart/form-data\" method=\"GET\">";
echo "<input type=\"file\" name=\"foto\" class=\"boton_intro\"> ";
echo "<a href=\"index.php?modulo=agregar&evento=carga\" border=\"0\">";
echo "<img src=\"imagenes/subir_fotos_02.gif\" border=\"0\" align=\"center\">";
echo "</a>";
echo "</form>";
}
« Última modificación: 26 Abril 2007, 16:48 pm por Diabliyo » En línea

LuffyFF


Desconectado Desconectado

Mensajes: 754


Final Fantasy XIII


Ver Perfil WWW
Re: Duda en la subida de archivos en php !!!
« Respuesta #6 en: 26 Abril 2007, 19:30 pm »

$_FILES es lo mismo que $HTTP_POST_FILES.
O sea que $_FILES es el corto de $HTTP_POST_FILES

De ningún modo, funcionaría con GET.

Saludos.
En línea

Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Re: Duda en la subida de archivos en php !!!
« Respuesta #7 en: 27 Abril 2007, 09:58 am »

Haber si aprendemos a debuggear nuestros programas. Yo te dicho que pusieras solo esa función, no que la metieras dentro de un echo.

Si lo que te he dicho yo te imprime por pantalla un 1, es que entonces $_FILES no es un array y no contiene nada.

Mira la documentación de dicha función, y ya sabes que dirección tomar: tu formulario falla!! No llega ningún array, y ahora que me lo miro... Como quieres pasar un formulario con una imagen por GET!!  :xD
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Duda en la subida de archivos en php !!!
« Respuesta #8 en: 28 Abril 2007, 04:53 am »

Haber si aprendemos a debuggear nuestros programas. Yo te dicho que pusieras solo esa función, no que la metieras dentro de un echo.

Si lo que te he dicho yo te imprime por pantalla un 1, es que entonces $_FILES no es un array y no contiene nada.

Mira la documentación de dicha función, y ya sabes que dirección tomar: tu formulario falla!! No llega ningún array, y ahora que me lo miro... Como quieres pasar un formulario con una imagen por GET!!  :xD

Intente lo de la imagen porke estaba anteriormente calandole con un boton y el formulario con method=GET, pero este no funcionaba :( !!!... en fin, modifique a POST y santa solucion !!...

Ahora les contare mas broncas que me surgen !!....

un momento.. jejejje

Gracias de Antemano !!...

bye bye
En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Duda en la subida de archivos en php !!!
« Respuesta #9 en: 28 Abril 2007, 05:09 am »

Hola:

Me sale error al intentar mover el/los archivos/imagenes :( !!!... me dice que NO puede :S !!... Mas o menos este es el code !!!

Código:
if( $_GET["evento"]=="subir" )
{
echo "<td align=\"center\">";
$fdir= opendir( "tmp/" );
$cont=0;
$url= "tmp/";

while( $buf= readdir($fdir) )
{
if( ($buf!="." && $buf!="..") && formatos_validos( strtolower($buf) ) )
{
$cont++;

if( move_uploaded_file( $url.$buf, "fotos/".$buf )==FALSE )
{
echo "<b>". $url.$buf. "</b> no pudo ser cargada<br>";
$cont--;
}
}
}

closedir($fdir);

if( $cont )
{
echo "<b>". $cont. " </b>";
if( $cont>1 )
echo "Fotos Subidas";
else
echo "Foto Subida";
echo " con Exito...<p>";
echo "<a href=\"index.php\"><img src=\"imagenes/finalizar.gif\" border=\"0\"></a>";
}
else
echo "No existen fotos a subir...";
echo "</td>";
}








echo "<td valign=\"bottom\">";
echo "<form action=\"index.php?modulo=agregar&evento=subir\" method=\"POST\">";
echo "<input type=\"submit\" value=\"Subir Fotos\" class=\"boton_intro\">";
echo "<span>:: Pulsa este boton si has teminado de adjuntar fotos.</span>";
echo "</form>";
echo "</td>";
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre subida de archivos(y web de este tipo) y no-ip y troyanos
Dudas Generales
Senior++ 0 1,825 Último mensaje 30 Enero 2012, 20:18 pm
por Senior++
como controlar la subida de archivos?
Desarrollo Web
--bl455-- 4 2,155 Último mensaje 26 Julio 2014, 01:05 am
por engel lex
subida de archivos con nombre numerico del array
PHP
gAb1 6 4,402 Último mensaje 4 Junio 2016, 06:22 am
por gAb1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines