El tema es el siguiente, tengo el siguiente formulario:
<form id="form_abm" name="noticias" method="post" action="addNoticia.php">
<table width="544" border="0" align="center">
<tr>
<td width="63"><h4>Titulo</h4></td>
<td width="471">
<input name="titulo" type="text" id="titulo" size="70" maxlength="150" />
</td>
</tr>
<tr>
<td><h4>Copete</h4></td>
<td><textarea name="copete" cols="70" rows="5" id="copete"></textarea></td>
</tr>
<tr>
<td><h4>Desarrollo</h4></td>
<td>
<textarea name="desarrollo" cols="70" rows="10" id="desarrollo"></textarea>
</td>
</tr>
<tr>
<td><h4>Imagen</h4></td>
<td><input name="imagen" type="text" id="imagen" size="50" /></td>
</tr>
<tr>
<td><h4>Fuente</h4></td>
<td><input name="fuente" type="text" id="fuente" /></td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="Submit" value="Enviar" />
<label>
<input name="Reset" type="reset" id="Reset" value="Borrar todo" />
</label> </td>
</tr>
</table>
</form>
Lo que necesito hacer es, selecionar una imagen ubicada en mi disco, subirla a una carpeta del host y guardar la direccion de la imagen en la DB.
En el campo imagen me faltaria un boton al lado para buscar la imagen en mi pc supongo tambien.
Muchas Gracias a quien pueda ayudarme. Saludos
Para subir un archivo al servidor podes fijarte este articulo (http://www.elguruprogramador.com.ar/ZONAS/ver.asp?id=106), como veras es necesario que el input del archivo sea del tipo type y no text.
Calculo que ese sera tu problema.
Saludos
en realidad la cuestión no es tanto en el form (donde tenes que poner como dijo snoop file en el tipe del image) y ademas en form tenes que poner tipo enctype="multipart/form-data"; sino que es la segunda parte (pagina 2) donde procesas el archivo que tenes la parte mas compleja
Igual el tuto que dejo snop esta bueno
Olvidense de ese form, lo que necesito hacer es, selecionar una imagen ubicada en mi disco, subirla a una carpeta del host y guardar la direccion de la imagen en la DB.
Muchas Gracias a quien pueda ayudarme. Saludos
Ya habia hablado sobre esot hace un tiempo, quizas sea mas avanzado de lo que vos necesitas, pero miralo y plantea las dudas aca.
El post lo podes ver aca: http://www.argentop2p.net/index.php?topic=6489.0
Baii
PS: en la parte PHP del codigo, algunos caracteres fueron transformados por SMF, por ejemplo, aparece como clearstatcache(); pero deberia ser clearstatcache(); eso deberias arreglarlo a mano.
Gracias predicador.
Ahora despues de haber leido el codigo me queda una duda.
Como hago para que una vez subido archivo copiar la ruta y metarla en un campo de mi DB?
Gracias Nuevamente
Cita de: Don_Gusanito en Octubre 06, 2006, 10:43:09
Gracias predicador.
Ahora despues de haber leido el codigo me queda una duda.
Como hago para que una vez subido archivo copiar la ruta y metarla en un campo de mi DB?
Gracias Nuevamente
La ruta la deberias saber, dado que tendrias que saber cual es el directorio de uplad de tu servidor. Luego agregas el nombre del archivo que le asignaste y agregas un registro con esa info.
www.forosdelweb.com ahi esta tu solcuion en el foro de PHP hay miles de temas como el tuyo
para meter la ruta necesitas hacer un insert
(ya iniciaste la conexion con el mysql y tenes un identificador $link)
$query = "INSERT INTO [i]tabla[/i] ([i]archivo,descripcion[/i]) VALUES ($rutaupload, $descripcion)";
$insertar = mysql_query($link,$query);
(ya se inserto)
En el ejemplo $rutaupload es el lugar donde se guardo el archivo y $descripcion es un campo que podes poner para saber que es (es al efecto del ejemplo, podes cambiar eso por los datos que tiene tu DB
PD: Cualquier cosa mirate http://ar2.php.net/manual/es/ref.mysql.php y www.mysql.org sección documentación, para ver el tema de la base de datos y las funciones
Perdon por la respuesta tardia, pero si, tal cual dice Camello_AR, y la ruta del archivo subido esta en $dest.
Por ende y haciendo una version resumida, tenemos que el formulario donde se dice que archivo subir seria de la forma:
<form name="datos" method="post" enctype="multipart/form-data" action="subir.php">
file:<input type="file" name="fileupload" class="textfield" size="50">
<input type="submit" value="upload" class="button">
<input type="reset" value="clear" class="button">
</form>
Y el archivo subir.php que es llamado desde ese formulario seria de la forma:
#
# Subir.php archivo
#
$source=$_FILES[fileupload][tmp_name];
$fileupload_name=$_FILES[fileupload][name];
$weight=$_FILES[fileupload][size];
$dest ="upload_dir/".$fileupload_name;
if(file_exists($dest)) {
echo "Archivo ya existe.";
exit();
}
if (copy($source,$dest)) {
echo"Subido sin problemas.";
# --- El aporte de Camello_AR
# (ya iniciaste la conexion con el mysql y tenes un identificador $link)
$descripcion = "Archivo subido por una persona";
$query = "INSERT INTO [i]tabla[/i] ([i]archivo,descripcion[/i]) VALUES ($dest, $descripcion)";
$insertar = mysql_query($link,$query);
# --- fin aporte de Camello_AR
}else{
echo "No se pudo subir.";
}
Esto es lo mismo que esta en el otro post, solo que con cantidad de cosas removidas para facilitar la compresion. Es impostante que ruta se le asigna a $dest ya que el script debe tener permisos de escritura en ese directorio.
Luego de hacer el upload (que en fin es el copy()) se procede a insertar la ruta destino el SQL (ysi, flatan las instrucciones para conectar al SQL, pero por algun otro post estan).
Baii.
IMPORTANTE: No uses este script asi como esta, necesita controles de seguridad!!!
PD: Ahora estaba viendo como quedo mi code y el de predi y en la linea de INSERT los [ i] [/ ] no van, queria poner cursiva para destacar un par de datos pero me olvido que el tag codigo no acepta BBCode
Una de las formas de filtrar lo que subis es a traves del identificador del tipo mime del archivo, que tanto la carpeta de origen como de destino sean no ejecutable (para que no te suban un exploit), que verifica alguna identidad, que verifique referentes (para evitar que la llamada al archivo "subir.php" sea desde cualquier otro form que no sea el tuyo). Es importante lo de controlar el tipo mime, dado que si te subo un php asi
#visor.php
<?
show_source($HTTP_GET_VARS[file]);
?>
Y lo llamo desde el navegador: tusitio/imagenes/visor.php?file=subir.php me muestra el contenido de ese archivo (y si tenes claves de base de datos y otras cosas en algun php es un riesgo muy muy grande
Saludos
Muchisimas gracias, todo fue de gran utilidad
Por nada gusanito