Lunes 23 de Diciembre de 2024, 02:06
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
Empezando en PHP, ¿ Archivos ?
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Empezando en PHP, ¿ Archivos ? (Leído 1531 veces)
kurtjavier
Nuevo Miembro
Mensajes: 15
Empezando en PHP, ¿ Archivos ?
«
en:
Viernes 21 de Mayo de 2010, 03:50 »
0
Como estan toos, espero que muy bien.... Bueno directo al grano. Estoy empezando a aprender PHP y he leido un poco sobre todo el manual oficial, pero no hay nada como hacer programas e ir llevando golpes, el hecho es que pase un programa super sencillo que tenia en C a PHP pero tengo un pequeño problema relacionado con archivos, explico.
En el programa tengo que cargar un archivo que contiene nombres y apellidos para hacer operaciones sobre ellos, mi problema es el siguiente, como subo el archivo al servidor y le paso la ruta al script php que me hace la accion, ese script esta en otra pagina. Aqui coloco como tengo el form.
Código: Text
<form method="POST" enctype="multipart/form-data" action="principal.php">
Archivo A Cargar:
<input type="file" name="file" id="file" value="file" />
<input type="submit" name="commit" value="Send" />
</form>
El hecho es que ese archivo seleccionado tengo que subirlo al servidor y posteriormente enviarle la ruta a la funcion que me hace la operacion, o seria genial lo guardara en la misma carpeta que el archivo php. ¿ Como hago todo eso ?. Hasta ahora probando en un servidor local con apache y php5 corre todo bien cuando tengo los archivos en la misma carpeta pero en otras carpetas no lo agarra, ya que el form manda solo el nombre del archivo pero no la ruta completa.
Alguna ayuda, no es una tarea ok ¬¬ siempre salta uno a decir eso, solo yo queriendo aprender y que mejor de las manos de personas que saben.
Tweet
fonsi3
Miembro activo
Mensajes: 95
Re: Empezando en PHP, ¿ Archivos ?
«
Respuesta #1 en:
Viernes 21 de Mayo de 2010, 06:25 »
0
En PHP exísten las que se llaman
predefined variables
, las más importantes a tener en cuenta son: $_POST, para cuando mediante el method="post" se envía data al server, $_GET, cuándo la data es envíada por method="get", o simplemente cuándo hay data en la url, y $_FILES, para cuándo se envían datos binarios al server, por ende en <form> tiene que estar sí ó sí el attr enctype="multipart/form-data".
Ya sabiendo esto, simplemente en <form> en el attr action="somephppage.php" donde específicas, dónde se úbica el script que procesará la data que se enviará al server, en tu caso, como envías un archivo, deberás hacer uso del $_FILES, y obviamente del $_POST. Así que por ejemplo:
Código: PHP
<?php
// acá pregunto si el índice 'commit' esta setteado,
// con esto verífico que la data ha llegando mediante
// method POST
if
(
isset
(
$_POST
[
'commit'
]
)
)
{
// ahora debo verificar el $_FILES y ver si ta todo ok
if
(
$_FILES
[
'file'
]
[
'error'
]
===
0
)
{
// el archivo ha sido subido correctamente
// y prósigo ha ubicarlo en una carpeta en mi webserver
// utiliza la function print_r( $_FILES ) pa saber la metadata
// del archivo subido en cuestión, print_r() es una function
// que escupe la estructura de un array, con sus respectivos
// índices y valores, super útil
// $_FILES['file']['tmp_name']: me tira en que carpeta
// esta ubicado este archivo temporalmente, ya sabiendo esto
// utilizo la function move_uploaded_file(), para ubicar al file
// en dónde se me plasca
move_uploaded_file
(
$_FILES
[
'file'
]
[
'tmp_name'
]
,
'uploads/text.txt'
)
;
// acuérdate que el segundo parámetro de esta function,
// hace referencia a donde será puesto el archivo subido
// y por ende debes específicar su nombre y su extensión,
// un error común para los beginners es poner directamente
// la carpeta pero no como se llamará el archivo.
}
}
?>
cha che chi cho chu buenichimo!
Cha che chi cho chu buenichimo!
http://mensoscripts.com
Links de interes:
HTML
|
CCS2
~
CSS*
|
PHP
Indispensables tools]Firebug[/url] |
Web Developer
|
FireFTP
|
Live Headers
kurtjavier
Nuevo Miembro
Mensajes: 15
Re: Empezando en PHP, ¿ Archivos ?
«
Respuesta #2 en:
Sábado 22 de Mayo de 2010, 22:36 »
0
Ey gracias por tu respuesta hermano, implemente y tenia algunos problemas asi que me fui de una al manual oficial de php y pude solucionar de la siguiente forma:
este es el form:
Código: Text
<form enctype="multipart/form-data" action="principal.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Archivo A Cargar: <input name="file" type="file">
<input type="submit" value="Enviar">
y en el archivo php tengo este codigo:
Código: PHP
$nombre_archivo
=
$HTTP_POST_FILES
[
'file'
]
[
'name'
]
;
if
(
move_uploaded_file
(
$HTTP_POST_FILES
[
'file'
]
[
'tmp_name'
]
,
$nombre_archivo
)
)
{
echo
"El archivo "
$nombre_archivo
" ha sido cargado correctamente<br>"
;
cargar
(
)
;
repite
(
)
;
mostrar
(
)
;
}
else
{
echo
"Ocurrió algún error al subir el fichero. No pudo guardarse<br>"
;
}
El problema que tenia que no me ejaba utilizar ninguna funcion ni COPY ni MOVE_UPLOADED_FILE.... el problema era que tenia que darle permisos a la carpeta y a los archivos para poder escribir ¬¬ ........mas facil imposible, y yo dandome mala vida ah....... gracias igual men siempre se puede contar con gente de este foro
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
Empezando en PHP, ¿ Archivos ?