Ver Mensaje Individual
  #6 (permalink)  
Antiguo 20/04/2005, 15:14
box_factor
 
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires
Mensajes: 220
Antigüedad: 19 años, 1 mes
Puntos: 0
sebtev.. como podria hacer para subir el archivo directamente a un folder del server

Lei tu post y me parecio muy interesante, lo que yo estoy tratando por todos los medios de estudiar como puedo hacer es una aplicación muy similar a la que aqui presentas, pero en ves de subir arvichos a una db, quiero depositarlos en un folder del servidor.
En si mi idea es poder subir archivos para compartir con amigos en mi web sin necesidad de usar un cliente ftp para ello.
Simplemente necesito algo que me permita localizar el archivo de interes y de ahi en mas, subirlo directamente al folder de mi interes, para que luego, mis amigos puedan descargarlo de ahi (lo unico que puedo mencionar es que el acceso al folder lo tengo protegido por contraseña desde el cpanel)

Podrias darme una mano? estoy muy interesado en esta aplicacion y con cada una que veo voy aprendiendo un paso mas..

Saludos !


---------------------
Cita:
Iniciado por sebtev
Para subir una imágen y almacenarla en MYSQL, lo mejor que puedes hacer es un formulario:

<form enctype="multipart/form-data" action="guardar.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
TITULO: <input type="text" name="nov_titulo">
CONTENIDO: <input type="text" name="nov_texto">
SUBIR ESTA IMAGEN: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>

Presta atención a "enctype=...", esto te permite enviar archivos mediante el method, en este caso POST, el action es guardar.php, en este script pondremos lo sig:

<?
require "config-inc.php";
//nombre de usuario de la base de datos, password, etc.
?>
<?php
$dbconexion = mysql_connect($dbconfig["localhost"],$dbconfig["user"],$dbconfig["password"]) or die("no se puede establecer una conexión con la Base de Datos, por favor vuelva a intentarlo dentro de algunos minutos. <a href=\"javascript:history.go(-1);\" class=\"navegador\">volver</a>") or die(mysql_error());
mysql_select_db($dbconfig[db]) or die(mysql_error());
?>
//conexión con la BD (Base de Datos) y selección de la misma (mysql_select_db)
<?
if (isset($_POST['nov_titulo'])){$nov_titulo = $_POST['nov_titulo'];}
if (isset($_POST['nov_texto'])){$nov_texto = $_POST['nov_texto'];}
?>
//chequeo del POST (formulario)
<?php
$unique = time();
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/patch/carpeta/uploads/'.$unique;
$uploadfile = $uploaddir . $_FILES['userfile']['name'];
$uploadcheck = $uploadfile;

//la variable unique es la hora actual en formato unix, esto solamente lo uso para evitar que dos imágenes tengan el mismo nombre, uploadfile toma en SERVER[DOCUMENT_ROOT] el patch del servidor (en windows por ej. c:\apache\www), con el punto (.) la agregamos el patch donde queremos que nos guarde las imágenes y le agregamos la fecha. En uploadfile le agregamos el nombre de la imágen. Uploadcheck es para chequear lo siguiente:

if(empty($_FILES['userfile']['name'])){
$uploadfile = "";}

//con esto evitamos que en la base de datos nos guarde, en caso de que no se halla subido una imagen en el formulario, el patch solo, por ej. (c:\apache\www\patch\carpeta\uploads\$unique).

$update = mysql_db_query("$dbconfig[db]","INSERT INTO $dbtable[novedades] (nov_img, nov_titulo, nov_texto, nov_fecha) VALUES ('$uploadfile', '$nov_titulo', '$nov_texto', CURRENT_DATE)") or die(mysql_error());

//aquí insertamos en la DB los datos, nada raro, solo el CURRENT_DATE que utilizamos para ingresar la fecha actual en el campo nov_fecha de la DB, no tiene nada que ver con tu pregunta, pero ya que yo la utilizo, la deje por si alguna vez te sirve.

$borrarID = mysql_db_query("$dbconfig[db]","ALTER TABLE $dbtable[novedades] DROP id") or die(mysql_error());
$alterar= mysql_db_query("$dbconfig[db]","ALTER TABLE $dbtable[novedades] ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id)") or die(mysql_error());

print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "El archivo fue subido con éxito";
print "Información del archivo:";
print_r($_FILES);
} else {
print "El archivo no se pudo subir, información:\n";
print_r($_FILES);
}
print "</pre>";
?>
El lugar de print, puedes usar echo, esto lo escribi hace tiempo y ahora no lo encuentro en el foro
Saludos cuidate
__________________
Aprender trae dolores de cabeza...Enseñar, satisfacción :pensando: