Foros del Web » Programando para Internet » PHP »

No puedo subir imagenes al servidor pero si localmente

Estas en el tema de No puedo subir imagenes al servidor pero si localmente en el foro de PHP en Foros del Web. Hola a todos los de foros del web tengo una gran duda y un dilema porque puedo subir imagenes de modo local y no en ...
  #1 (permalink)  
Antiguo 30/07/2009, 10:39
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Exclamación No puedo subir imagenes al servidor pero si localmente

Hola a todos los de foros del web tengo una gran duda y un dilema porque puedo subir imagenes de modo local y no en el servidor.

Mi servidor esta en linux por siaca.


Ejemplo para subir imagenes de modo local:

Solo parte del codigo, aqui en mi unidad d:hay una carpeta llamada prueba y normal subo las imagenes el problema esta cuando quiero subirlas al servidor.

<?
if(isset($_FILES["archivo"]['size'])){
$destino="D:\prueba\ " .$_FILES['archivo']['name'];
if(move_uploaded_file($_FILES['archivo']['tmp_name'],$destino)){
echo "SE CARGO EXITOSAMENTE";
}
else{
echo "ERROR: archivo no aceptado";
}
}
?>


Codigo para subir al servidor, creo que el problema es la ruta.

<?
if(isset($_FILES["archivo"]['size'])){

Aqui la ruta a donde se tiene que guardar las imagenes
$destino="/srv/www/htdocs/Pandora/imagenes/ " .$_FILES['archivo']['name'];


Aqui una prueba de una carpeta compartida de otro server pero este en plataforma windows.
//$destino="\\bdserver\pandora\docs\ " .$_FILES['archivo']['name'];

if(move_uploaded_file($_FILES['archivo']['tmp_name'],$destino)){
echo "SE CARGO EXITOSAMENTE";
}
else{
echo "ERROR: archivo no aceptado";
}
}
?>


Lo que sale es error archivo no aceptado.
Un ejemplo y ayuda.
  #2 (permalink)  
Antiguo 30/07/2009, 10:48
Avatar de ajalex  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

ya revistaste que tengas los permisos chmod para subir ?
  #3 (permalink)  
Antiguo 30/07/2009, 10:52
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

mm que es eso ... disculpa la ignorancia soy nuevo en php.
  #4 (permalink)  
Antiguo 30/07/2009, 11:02
Avatar de ajalex  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

en tu cliente FTP dale click derecho y debes tener propiedades o permisos CHMOD dale los atributos 777 o 666 dependiendo, pero busca en google que es el chmod para mayor informacion pero mientras ponle a la carpeta donde quieres subir los pemisos 777
  #5 (permalink)  
Antiguo 30/07/2009, 14:23
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

MM
A mi codigo le agrege esto.
chmod("$destino", 0777); y nada.

Hare lo que dices-- nadie me quiere ayudar, solo eh trabajado en modo local modo server es nuevo para mi..
  #6 (permalink)  
Antiguo 30/07/2009, 14:50
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: No puedo subir imagenes al servidor pero si localmente

El problema que tienes es que $destino esta declarando con permiso 777 al archivo y no al directorio. Tu necesitas declararlo al directorio donde se va a guardar las fotos.

Si quieres crea una variable o declaralo directamente al chmod para que te de el permiso. Me refiero a esto
Código PHP:
Ver original
  1. chmod("/Pandora/imagenes", 0777);
Estoy pensando que el codigo se encuentra en el directorio htdocs. No necesitas declarar toda la ruta sino desde donde esta el archivo ejecutando el codigo hasta el directorio que quieres otorgarle permisos
  #7 (permalink)  
Antiguo 30/07/2009, 15:04
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

ABIMAEL MIL GRACIAS, PERO ME ACABAN DE INFORMAR QUE ESA CARPETA IMAGENES EN PANDORA NO PUEDE ASIGNARSE TODOS LOS PERMISOS, YA QUE CUALQUIER USUARIO PODRIA MODIFICAR Y HACER DESMADRES EN EL SISTEMA.

Lo que me an propuesto hacer es ejemplo hay un server.
con esta dirección:

\\bdserver\pandora\docs

en esa carpeta docs se tienen que guardar las imagenes.

Lo eh intentado pero naa no guarda y na..

primero lo pruebo de modo local para ver el error y me sale esto.


Warning: move_uploaded_file(\bdserver\pandora\docs/h-01.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\AppServ\www\Pandora\prueba_subir.php on line 7

pero de modo server me sale archivo no aceptado mi duda es como hacer para que se suban a esa ruta ya que esa carpeta tiene todos los permisos.

Gracias.-..
  #8 (permalink)  
Antiguo 30/07/2009, 15:06
Avatar de ajalex  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

hazlo mas facil con la funcion copy

Código PHP:
    $tamano $_FILES["archivo"]['size'];
    
$tipo $_FILES["archivo"]['type'];
    
$archivo $_FILES["archivo"]['name'];
    
$prefijo substr(md5(uniqid(rand())),0,20);

        
$destino =  "imagenes/".$prefijo."_".$archivo;
        
copy($_FILES['archivo']['tmp_name'],$destino
si tienes eso dentro de una carpeta ej:

htpdocs/admin/ en destino solo ponle ../imagenes si tu directorio a donde deseas subir esta fuera de esa carpeta y antes con tu cliente ftp o en tu panel si tienes cpanel o plesk en el administrador de archivos ponle el chmod 777
  #9 (permalink)  
Antiguo 30/07/2009, 15:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: No puedo subir imagenes al servidor pero si localmente

Cita:
Iniciado por dquispe Ver Mensaje
ME ACABAN DE INFORMAR QUE ESA CARPETA IMAGENES EN PANDORA NO PUEDE ASIGNARSE TODOS LOS PERMISOS, YA QUE CUALQUIER USUARIO PODRIA MODIFICAR Y HACER DESMADRES EN EL SISTEMA.
En realidad te pueden hacer desmadres si tu permites que puedan subir cualquier tipo de archivo. Para eso tienes que verificar si el archivo es una imagen o no con el $_FILES["archivo"]["type"]

Verifica en diferentes navegadores cuales son los tipos de formato que pueden existir y asi creas el if para ver si es una imagen o no.
  #10 (permalink)  
Antiguo 30/07/2009, 15:20
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

Esta bien pero debo subirlo a esta direccion, y nada no me lo permite, y eso que todos los permisos estan dados.

\\bdserver\pandora\docs

trato asi
$destino= "\\bdserver\pandora\docs\ " .$_FILES['archivo']['name'];

y naaaa. Cuando loo trato de subir, somo me dice archivo no aceptado, osea las condicionales funcionan .

No entiendo el error o horror de sintaxis..
  #11 (permalink)  
Antiguo 30/07/2009, 15:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: No puedo subir imagenes al servidor pero si localmente

¿Donde esta el archivo de php que ejecuta el codigo? No uses \ usa /. Pero dime donde esta el archivo de php que ejecuta el codigo
  #12 (permalink)  
Antiguo 30/07/2009, 15:32
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

Bueno lo quieres completo, ahi va.

<h1> CARGA DE ARCHIVOS</h1>
<p>&nbsp;</p>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="324" border="0" align="center" class="tablaDato">
<tr>
<td width="39" class="tablaTitulo">Archivo</td>
<td width="269"><label>
<input name="archivo" type="file" id="archivo" />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><label>
<input name="btnsubir" type="submit" class="boton" id="btnsubir" value="Subir Archivo" />
</label></td>
</tr>
</table>
<p>&nbsp;</p>

<?
$file=$_FILES["archivo"];
if(isset($_FILES["archivo"]["size"])){
$v=$_FILES["archivo"]['size'];
$re=$v/1048576;
?>

<div id="datos">
<table width="362" border="0" class="tablaTitulo">
<tr>
<td width="157">tipo de archivo : </td>
<td width="193"><?=$_FILES["archivo"]['type']?></td>
</tr>
<tr>
<td>tama&ntilde;o de archivo: </td>
<td><? echo number_format($v,4)." MB"?></td>
</tr>
<tr>
<td>nombre original: </td>
<td><?=$_FILES["archivo"]['name']?></td>
</tr>
<tr>
<td>nombre temporal: </td>
<td><?=$_FILES["archivo"]['tmp_name']?></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><?=$file?>&nbsp;</td>
</tr>
</table>
</div>
<?
}
?>
<p>&nbsp;</p>
</form>
</body>
</html>
<?
if(isset($_FILES["archivo"]['size'])){
$destino= "\\bdserver\pandora\docs\ " .$_FILES['archivo']['name'];

if(move_uploaded_file($_FILES['archivo']['tmp_name'],$destino)){
chmod("$destino", 0777);// todos los permisos par el propietario, lectura y escritura para los demas

echo "SE CARGO EXITOSAMENTE";
}
else{
echo "ERROR: archivo no aceptado";
}
}
?>


Solo quiero que suba a esa ruta.
\\bdserver\pandora\docs
es de otro servidor.

Normal solo quiero que suba. La foto o imagen.
  #13 (permalink)  
Antiguo 30/07/2009, 15:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: No puedo subir imagenes al servidor pero si localmente

¿Estas en intranet?

Edito:
Mientras tanto para poder subir un archivo a otro servidor vas a tener que usar cURL. Aqui hay un ejemplo de como hacerlo
http://www.codigolandia.com/art-Uplo...Curl-php-75.tc
  #14 (permalink)  
Antiguo 30/07/2009, 15:38
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

Si.
Solo es una pagina de prueba. Me falta eso para hacer un proceso.

Primero pruebo localmente de ahi en el servidor, yaq ue suelen pasar muchos problemas.
  #15 (permalink)  
Antiguo 30/07/2009, 15:50
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

Ahi me agarrastes con esa nota del curl.
  #16 (permalink)  
Antiguo 31/07/2009, 07:54
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

Eh probado con un ejemplloo que vi por ahi.



<?php
// Primero creamos un ID de conexión a nuestro servidor
$cid = ftp_connect("www.cobraperu.com.pe");
// Luego creamos un login al mismo con nuestro usuario y contraseña
$resultado = ftp_login($cid,"root","cobraperu");

// Comprobamos que se creo el Id de conexión y se pudo hacer el login
if ((!$cid) || (!$resultado)) {
echo "Fallo en la conexión"; die;
} else {
echo "Conectado.";
}
// Cambiamos a modo pasivo, esto es importante porque, de esta manera le decimos al
//servidor que seremos nosotros quienes comenzaremos la transmisión de datos.

ftp_pasv ($cid, true) ;
echo "<br> Cambio a modo pasivo<br />";

// Nos cambiamos al directorio, donde queremos subir los archivos, si se van a subir a la raíz
// esta por demás decir que este paso no es necesario. En mi caso uso un directorio llamado boca

ftp_chdir($cid, "Utilitarios");
echo "Cambiado al directorio necesario";

// Tomamos el nombre del archivo a transmitir, pero en lugar de usar $_POST, usamos $_FILES que le indica a PHP

// Que estamos transmitiendo un archivo, esto es en realidad un matriz, el segundo argumento de la matriz, indica
// el nombre del archivo
$local = $_FILES["archivo"]["name"];

// Este es el nombre temporal del archivo mientras dura la transmisión
$remoto = $_FILES["archivo"]["tmp_name"]; // El tamaño del archivo
$tama = $_FILES["archivo"]["size"];
echo "<br />$local<br />";
echo "$remoto<br />";
echo "subiendo el archivo...<br />";
// Juntamos la ruta del servidor con el nombre real del archivo
$ruta = "/srv/www/htdocs/Utilitarios/" . $local;
// Verificamos si no hemos excedido el tamaño del archivo

if (!$tama<=$_POST["MAX_FILE_SIZE"]){
echo "Excede el tamaño del archivo...<br />";
} else {
// Verificamos si ya se subio el archivo temporal
if (is_uploaded_file($remoto)){
// copiamos el archivo temporal, del directorio de temporales de nuestro servidor a la ruta que creamos
copy($remoto, $ruta);
}
// Sino se pudo subir el temporal
else {
echo "no se pudo subir el archivo " . $local;
}
}
echo "Ruta: " . $ruta;
//cerramos la conexión FTP
ftp_close($cid);
?>

Me sale un error de un parametro faltante.


Warning: ftp_login() expects parameter 1 to be resource, boolean given in C:\AppServ\www\Pandora\subir2.php on line 5
Fallo en la conexión
  #17 (permalink)  
Antiguo 03/08/2009, 18:51
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: No puedo subir imagenes al servidor pero si localmente

Favor de ayudarme ...
Me sale constantemente este error.
Esto sucede cuando lo pruebo.

$destino= "/home/pandora/docs/ " .$_FILES['archivo']['name'];

Ps es otra ruta de otro servidor en linux y tiene todos los permisos, no entiendo el error favor de ayudarme. Que me estoy poniendo loco.
Warning: move_uploaded_file(/home/pandora/docs/ h-01.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\AppServ\www\Pandora\upload.php on line 72
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.