Foros del Web » Programando para Internet » PHP »

no puedo subir archivos temp = no value

Estas en el tema de no puedo subir archivos temp = no value en el foro de PHP en Foros del Web. Hola nececito subir mis imagenes en formato JPG a mi servidor remoto, no tengo acceso a cambiar las directivas de PHP ini, las de UPLOAD ...
  #1 (permalink)  
Antiguo 24/03/2004, 18:53
 
Fecha de Ingreso: febrero-2004
Mensajes: 35
Antigüedad: 20 años, 2 meses
Puntos: 0
no puedo subir archivos temp = no value

Hola

nececito subir mis imagenes en formato JPG a mi servidor remoto, no tengo acceso a cambiar las directivas de PHP ini, las de UPLOAD son las siguientes:
file_uploads 1
upload_max_filesize 2M
upload_tmp_dir no value

seguramente al no existir una carpeta temporal es la razon por la que mi scritp (lo saque de las faqs y lo modifique segun lo que decia cluster) no sube el archivo, (me imprime "error al subir archivo") este es el codigo:

el formulario
Código:
<form name="form1" enctype="multipart/form-data" method="post" action="subir.php">
  <input type="file" name="archivo">
  <input type="submit" name="Submit" value="subir">
</form>
el codigo upload PHP


Código PHP:
<?php 
$extension 
explode(".",$_FILES[archivo][name]); 
$num count($extension)-1
if(
$extension[$num] == "JPG"

if(
$_FILES[archivo][size] < 100000

if(!
move_uploaded_file($_FILES[archivo], "fotos/".$_FILES[archivo][name])) 

echo 
"error al copiar el archivo"

else 

echo 
"archivo subido con exito"


else 

echo 
"el archivo supera los 100kb"


else 

echo 
"formato inválido"

?>
la carpeta fotos esta en la misma carpeta del upload de php

Pregunta 1
es correcto el codigo?

Pregunta 2
hay forma de cambiar el valor de la carpeta temporal en tiempo de ejecucion? y si hay me podrian dar ejemplos?

Pregunta 3
hay alguna forma de subir archivos sin q estos pasen por la carpeta temporal del servidor?si hay me pueden dar ejemplos?

muy agradecido

Topito
  #2 (permalink)  
Antiguo 24/03/2004, 21:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Decia el manual oficial de PHP sobre:
upload_tmp_dir no value

Cita:
upload_tmp_dir string
The temporary directory used for storing files when doing file upload. Must be writable by whatever user PHP is running as. If not specified PHP will use the system's default
"si no se indica un directorio ahí .. se tomará como temporar el del sistema" (en windows c:\windows .. en linux suele ser /tmp ..)

RE 1:
mmm

Código PHP:
if(!move_uploaded_file($_FILES['archivo']['tmp_name'], "fotos/".$_FILES['archivo']['name'])) 
(yo usaría comillas en los indices del array FILES ...)

Otro detalle: hay cosas que haces como obtener la extensión del archivos que no son del todo seguras. Un archivo puede ser de X extensión pero de formato MIME totalmente diferente. Para eso en $_FILES['archivo']['type'] tienes el formato MIME del archivo que subas (tipo : image/jpeg .. o similar ..) Por ahí puedes obtener si es un "jpg" o un "gif" .. o el tipo de archivo que es de forma más segura.

RE 2:
No hay forma .. sólo se puede cambiar desde php.ini (ni con .htacces ..)

RE 3:
No (que yo sepa) desde PHP .. PHP usa ese directorio temporal por seguridad para todo lo subas por HTTP y pase por PHP.

Recomendación
Revisa la versión de PHP que uses .. Las funciones move_uploaded_file() y los arrays superglobales $_FILES están disponibles desde (no me acuerdo) versión de PHP (revisa el manual oficial de PHP ..)

Visita:
http://www.php.net/manual/en/features.file-upload.php

Para más detalles, lee los comentarios de los usuarios que suelen ser interesantes.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 09/05/2005, 05:27
Avatar de Delek  
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 1 mes
Puntos: 0
Estoy intentando subir archivos a un servidor y el caso es que no me da error, y parece funcionar, pero no me sube el archivo.

Este el código simplificado:

Cita:
<body>
<?
$fichero = basename($_FILES['archivo']['name']);
$fichero_destino = "/img/".$fichero;
move_uploaded_file($_FILES['archivo'], $fichero_destino);
print_r($_FILES);
?>
<form enctype="multipart/form-data" method="post" action="<? $PHP_SELF ?>">
<input type="file" name="archivo">
<input type="submit" name="submit" value="enviar">
</form>
</body>
El print me da este mensaje:

Array ( [archivo] => Array ( [name] => avatar.jpg [type] => image/pjpeg [tmp_name] => /tmp/phpw6F8kj [error] => 0 [size] => 1470 ) )

¿Quiza es un problema de permisos o estoy haciendo algo mal?

Saludos

Delek
  #4 (permalink)  
Antiguo 09/05/2005, 05:51
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
... no, lo que pasa es que $_FILES es un arreglo, tu solo lo mandas a imprimir...

... lectura obligada: http://mx.php.net/manual/es/features...ad.post-method

Y buscando en el foro encontrarás scripts que te serán utliez... algunos sencillos: http://www.forosdelweb.com/f18/upload-file-287737/
otro un tanto más complejos: http://www.forosdelweb.com/f18/subir-archivos-para-e-servidor-285222/

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 09/09/2009, 09:13
Avatar de yubertvikel
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: Venezuela
Mensajes: 928
Antigüedad: 14 años, 10 meses
Puntos: 111
Sonrisa Respuesta: no puedo subir archivos temp = no value

Hola, yo usé este codigo para validar y me habia funcionado de maravilla en Appserv

if (is_uploaded_file($HTTP_POST_FILES['archivo1']['tmp_name'])) {
if($HTTP_POST_FILES['archivo1']['size'] < 4194304) {
if($HTTP_POST_FILES['archivo1']['type']=="image/gif" || $HTTP_POST_FILES['archivo1']['type']=="image/jpeg" || $HTTP_POST_FILES['archivo1']['type']=="image/pjpeg" || $HTTP_POST_FILES['archivo1']['type']=="image/png" || $HTTP_POST_FILES['archivo1']['type']=="image/bmp") {
$im1="images/fotox.jpg;
copy($HTTP_POST_FILES['archivo1']['tmp_name'], $im1);
} } }

pero cambié a xampp y actualmente tengo problemas porque en el proceso de
if (is_uploaded_file($HTTP_POST_FILES['archivo1']['tmp_name'])) { no lo pasa, es decir dice que no es un archivo, tengo configurado el php.ini on con tope de 4mb y está configurada la carpeta temporal a la que te pone xampp, si trabajas con appserv funciona, pero con xampp me da problema, tienen algún comentario que me ayude
  #6 (permalink)  
Antiguo 09/09/2009, 09:15
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: no puedo subir archivos temp = no value

Cambia $HTTP_POST_FILES, es obsoleta, por $_FILES
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 09/09/2009, 12:53
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: no puedo subir archivos temp = no value

yubertvikel: Estás reviviendo un tema de hace más de 5 años, además con algo que no retoma nada del asunto original. Si no vas a continuar con el tema original, por favor, abre un nuevo tema.

Tema cerrado.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 13:30.