Para listar, tengo una simplísima consulta donde llamo a esa tabla con los siguientes campos:
TABLA IMAGENES
id_foto nombre archivo
1 foto1 foto.jpg
La consulta para listarla es simple:
conexion bdd
$id_foto = $_GET['idfoto'];
sql="SELECT * FROM IMAGENES WHERE id_foto=$id_foto"
Y para borrar los registros de la base lo hago así:
$id_foto = $_GET['idfoto'];
$sql = "DELETE FROM IMAGENES WHERE id_foto = $id_foto";
Pero para subir archivos utilizo otro formulario... un upload.php y los archivos físicamente se guardan en una carpeta llamada imagenes/
Código :
<script type="text/javascript"> var numero = 0; // Funciones comunes c= function (tag) { // Crea un elemento return document.createElement(tag); } d = function (id) { // Retorna un elemento en base al id return document.getElementById(id); } e = function (evt) { // Retorna el evento return (!evt) ? event : evt; } f = function (evt) { // Retorna el objeto que genera el evento return evt.srcElement ? evt.srcElement : evt.target; } addField = function () { container = d('file'); span = c('SPAN'); span.className = 'archivo'; span.id = 'archivo' + (++numero); field = c('INPUT'); field.name = 'archivo[]'; field.type = 'file'; a = c('A'); a.name = span.id; a.href = '#'; a.onclick = removeField; a.innerHTML = 'Quitar'; span.appendChild(field); span.appendChild(a); container.appendChild(span); } removeField = function (evt) { lnk = f(e(evt)); span = d(lnk.name); span.parentNode.removeChild(span); } </script>
Y el formulario es este:
Código :
<form action="imagenes/uploadok.php" method="post" enctype="multipart/form-data"> <dl> <dt> <label for="to"></label> </dt> <dt> <label>Archivos Adjuntos:</label> <a href="#" onClick="addField()">Añadir Archivo</a></dt> <dd> <div id="file"><br> </div> </dd> <dd><br> <input type="submit" value="upload" id="archivo" name="archivo" /> <input type="hidden" name="action" value="upload" /> </dd> </p> </form>
Código :
if(isset($_POST['action'])) { // if ($_POST["action"] == "upload") { $tmpfile = $_FILES['archivo']['tmp_name']; $tmpname = $_FILES['archivo']['name']; $ftpuser = "xxxx"; $ftppass = "xxxx"; $ftppath = "ftp.xxxxx.xxx/imagenes/"; $ftpurl = "ftp://".$ftpuser.":".$ftppass."@".$ftppath; //places files into same dir as form resides foreach ($_FILES["archivo"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { echo"$error_codes[$error]"; move_uploaded_file( $_FILES["archivo"]["tmp_name"][$key], $_FILES["archivo"]["name"][$key]) or die("Problems with upload"); } } } header("location: upload.php"); exit; // if ($tmpname != "") { // echo 'Archivo subido correctamente.'; // } else { // echo 'Error al subir el archivo.'; //}
Así, separado funciona perfecto, pero me faltaría encontrar la manera de:
- en el formulario de alta, subir también los archivos seleccionados... hacer upload.
- al eliminar un registo también me elimine el archivo físico del servidor.
¿Se puede hacer esto?
Perdon si hay un error en la sintaxis, es que estoy en el trabajo

Gracias a todosssssssssss!!!!!!!!!!!!!!!
Picasso.