Foros del Web » Programando para Internet » PHP »

Otra forma de subir archivos?

Estas en el tema de Otra forma de subir archivos? en el foro de PHP en Foros del Web. Hola, existe otra forma de subir archivos a un servidor que no sea guardandola en la base de datos. Me explico resulta que guarde las ...
  #1 (permalink)  
Antiguo 26/12/2003, 03:43
 
Fecha de Ingreso: diciembre-2003
Ubicación: Quillota
Mensajes: 196
Antigüedad: 20 años, 4 meses
Puntos: 0
Exclamación Otra forma de subir archivos?

Hola, existe otra forma de subir archivos a un servidor que no sea guardandola en la base de datos.
Me explico resulta que guarde las fotos en la base de datos, pero por alguna razon que no entiendo las guarda mal, si las trato de ver se ven distorcionadas y no pueod mostrarlas en una pagina. Me dijieron que era un problema con el servidor.
Por eso me dijieron que con ftp se puden subir imagenes y que puedo guardar la ruta en la base de datos para asi poder trabajar comodamente.
Como es eso de subir una imagen o archivo por ftp? Gracias
  #2 (permalink)  
Antiguo 26/12/2003, 06:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Igualmente puedes subir tus imagenes/archivos por HTTP como ya lo haces ..sòlo que en lugar de guardar tu imagen/archivo en tu BD en un campo tipo BLOD (binario) .. sólo guarda el nombre/ruta del archivo y el archivo en sí lo copias (move_uploaded_file()) hacia el destino definitivo en tu servidor (del temporal que PHP lo deja al subir . .hacia un directorio de tu sitio).

----

Los problemas que tienes al guardar tus imagenes en tu BD en formato binario .. depende mucho del código .. sobre todo si no "escapas" los datos que introduces .. o si haces thumbnails usando las extensiones GD de la versión de estas .. etc. e incluso de las cabeceras que usas para mostrar tus imagenes leidas desde tu BD en binario ..

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 26/12/2003, 09:54
 
Fecha de Ingreso: diciembre-2003
Ubicación: Quillota
Mensajes: 196
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias, oye y como se podria solucionar lo de la base de datos?
A y otra cosa para ocupar el move_uploaded_file() tengo que hacer lo mismo y luego darle la ruta?, si me puedes m ostrar un poco de cogido porfa, seria mass facil. Gracias
  #4 (permalink)  
Antiguo 26/12/2003, 10:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Código de ejemplo tienes en:

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

Lee la teoría sobre el "Upload" .. PHP almacena temporalmente todo lo que subes vía HTTP (por tu formulairo con campo type="file") .. y de ahí lo mueves a su destino definitivo con la función que te comenté .. En el camino puedes leer el nombre del archivo que estás subiendo, tamaño y otras propiedades de lo que acabas de subir vía variables tipo $_FILE['archivo']['name'] .. etc .. Así que ese dato es el que debes guardar en tu BD como un campo de texto corriente. Ese dato será el que apunte a su destino definitivo (con ruta si lo deseas).

------

Sobre los problemas de tu script actual que usa BD y campos binarios .. Tendrías que describir mejor el problema y las pruebas que haces ademas de poner el código que usas y que tipo de archivo subes (tamaño .. colores de las imagenes) y una descripción de la BD que usas (a nivel de estructura).

Esto es como ir al doctor .. si no aportas datos sobre tus problemas .. poco o nada se te puede aconsejar a ciencia cierta.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 26/12/2003, 16:27
 
Fecha de Ingreso: diciembre-2003
Ubicación: Quillota
Mensajes: 196
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola, saque el mismo codugo del manual y lo cambia, para poder usarlo. Me resulto y dice que subio el archivo pero realmente no se donde quedaron lso archivos que supuestamente subi al servidor, en la carpeta htdocs hice una carpeta images porque supuse que se guardaba en el usuario que uno estubiera ocupando. Bueno les muestro el cogido, gracias

$uploaddir = 'images';
$uploadfile = $uploaddir. $_FILES['archivo']['name'];

print "<pre>";
if (move_uploaded_file($_FILES['archivo']['tmp_name'], $uploadfile))
{
print "Subio. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
print "</pre>";


puse 'images' ya que si ponia \images\ me no me reconocia las ' y con /images tampoco funciono.
  #6 (permalink)  
Antiguo 26/12/2003, 16:32
 
Fecha de Ingreso: diciembre-2003
Ubicación: Quillota
Mensajes: 196
Antigüedad: 20 años, 4 meses
Puntos: 0
Me falto agregar que lo quiero hacer pero sin tener que escribir la ruta osea c:\apache\etc, sino que por ejemplo pueda llevar esta aplicacion a otro lado y con solo tener un acarpeta images en el servisdor queden guardadas en el. Gracias
  #7 (permalink)  
Antiguo 27/12/2003, 07:20
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 293
Antigüedad: 20 años, 5 meses
Puntos: 1
<FORM ENCTYPE="multipart/form-data" ACTION="<?=$var?>" METHOD="post">

<table width="7%" border="0" align="center" cellpadding="5">
<tr>
<td><INPUT type="file" name="archivo">
<INPUT type="hidden" name="lim_tamano" value="8000">
</td>
</tr>
<tr>
<td align="right"> <INPUT class="expe" type="submit" name="enviar" value="Aceptar"></td>
</tr>
</table>
</FORM>



<?
$link = mysql_connect("localhost", "????","????")or die ("no se ha podido conectar a la BD");
$link = mysql_connect("localhost");
mysql_select_db("????", $link) or die ("no se ha podido seleccionar la BD");;


$archivo_name= $_FILES['archivo']['name'];

$MAX_FILE_SIZE= $_POST['lim_tamano'];

if ($archivo != "none" AND $archivo_size != 0 AND $archivo_size<=$lim_tamano){

if (copy ($archivo, "img/".$archivo_name)) {
echo "Se ha transferido el archivo $archivo_name<br>";

echo "<br>Su tamaño es: $archivo_size bytes<br>";
echo "<br>El fichero es tipo: $archivo_type <br>";
}else{
echo "No ha podido transferirse el fichero";
echo "Error interno del servidor.";

}
}else{
echo "No ha podido transferirse el fichero";
echo "su tamaño no puede exceder de $lim_tamano bytes";
}
?>
__________________

diseño web

Última edición por concric; 27/12/2003 a las 07:29
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 00:56.