Announcement

Collapse
No announcement yet.

Borrar archivo del servidor

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Borrar archivo del servidor

    Me presento mi nombre es Luis
    Soy un poco novato en este mundillo y espero que me podáis echar un cable para encontrar una solución a mi problema.


    Tengo un formulario que permite subir archivos (campo multi-upload) a mi servidor y los almacena en "/opt/y/wwwroot/scriptcase/file/doc_activos"

    El problema está cuando selecciono los archivos para eliminarlos, que solo se elimina el registro de la base de datos y no del servidor.

    Gracias de antemano

  • #2
    Prueba con la función unlink:


    1 <?php
    2 unlink('test.html');
    3 ?>

    Guarda el código en un archivo que reconozcas (eliminar.php o algo así) y súbelo al servidor.
    Art is the only way to run away without leaving home.

    Comment


    • #3
      Borrar el archivo se como hacerlo usando este código:

      PHP Code:
      $dir '/opt/y/wwwroot/scriptcase/file/doc_activos/nombredelarchivo';
      if (
      file_exists($dir)) {
              
      unlink($dir);
              
      sc_ajax_message("Borrando: '$dir'");
      } else {
              
          
      sc_ajax_message("NO Borrando");
          } 
      El problema es que tengo esto 2015-04-07 12_39_44-Actualizaci&amp;#243;n - activos.jpgy quiero que cuando chequees la casilla de eliminar también lo haga en el servidor

      No se como hacerlo

      Comment


      • #4
        En que evento lo pusiste?
        Probaste colocan-dolo en el evento onbeforedelete??

        Comment


        • #5
          No has entendido lo que quiero lograr

          te pongo un ejemplo

          Ejemplo:

          1. Subo los archivos llamados "archivo1.txt" y "archivo2.txt".

          2. Para borrarlos tendría que colocar este código

          PHP Code:
          $dir '/opt/y/wwwroot/scriptcase/file/doc_activos/archivo1.txt';
          $dir2 '/opt/y/wwwroot/scriptcase/file/doc_activos/archivo1.txt';
          if (
          file_exists($dir) && file_exists($dir2)) {
                  
          unlink($dir);
                  
          unlink($dir2);
                  
          sc_ajax_message("Borrandos");
          } else {
                  
              
          sc_ajax_message("NO Borrando");
              } 
          3 Me los borra

          El problema es que si subo los archivos con otro nombre ya no funciona. Porque en el código hay que indicar el nombre del archivo.

          Podría recoger por teclado los nombres de los archivos pero eso es una chapuza.

          Comment


          • #6
            Que tal:

            Creo que tu problema no es problema en lo absoluto... corrígeme si me equivoco:
            1.- deseas eliminar los archivos si y solo si... salvan el registro...(guardaron el cambio o eliminaron el registro)
            2.- conoces la ruta exacta en donde se guarda el archivo.

            De ser así lo único que tienes que hacer es en los eventos onbeforedelete y onbeforeupdate guarda en una variable global el listado de los archivos (consulta la tabla donde estan los archivos y guarda el resultado en la variable global) y en los eventos onafterdelete y onafterupdate compara la lista con lo que tienes en la tabla.. si la tabla está vacía... se eliminó el registro y borras todos los archivos guardados en la variable globall.. si la tabla tiene archivos... verifica cual de tu variable global no está en la tabla auxiliar y lo eliminas y... TADAAAAAAAa...

            Listo.

            Saludos

            Comment


            • #7
              Ohh Gracias, es justo lo que buscaba voy a intentar hacerlo a ver si me sale.

              Ya os iré comentando que tal me fué.

              Comment


              • #8
                He echo algunas pruebas sencillas guardando los nombres de los archivos en una variable global como me indico el compañero. Pero solo se hacerlo con un archivo porque no se como almacenar varios nombres en una variable y luego elegir solo los que se han borrado.

                Me explico

                1. Al iniciar en el evento OnLoad hago una llamada a la tabla para recoger los nombres de los archivos adjuntos (ej: aaa.txt, bbb.txt, y ccc.txt)

                2. Los guardo en una variable global

                3. Luego borra el archivo ccc.txt

                4. En el evento OnAfterUpdate. Tengo que hacer una comparativa entre los nombres que guarde al principio (aaa.txt, bbb.txt, y ccc.txt) y los que hay después de actualizar (aaa.txt y bbb.txt) el archivo que falte lo elimino del servidor usando el código php que ya tengo.


                Esa es la forma de hacerlo que he planteado pero no se como hacerla

                Si alguien sabe o conoce otra forma espero que me ayude

                Comment


                • #9
                  Originally posted by luismi1919 View Post
                  He echo algunas pruebas sencillas guardando los nombres de los archivos en una variable global como me indico el compañero. Pero solo se hacerlo con un archivo porque no se como almacenar varios nombres en una variable y luego elegir solo los que se han borrado.

                  Me explico

                  1. Al iniciar en el evento OnLoad hago una llamada a la tabla para recoger los nombres de los archivos adjuntos (ej: aaa.txt, bbb.txt, y ccc.txt)

                  2. Los guardo en una variable global

                  3. Luego borra el archivo ccc.txt

                  4. En el evento OnAfterUpdate. Tengo que hacer una comparativa entre los nombres que guarde al principio (aaa.txt, bbb.txt, y ccc.txt) y los que hay después de actualizar (aaa.txt y bbb.txt) el archivo que falte lo elimino del servidor usando el código php que ya tengo.


                  Esa es la forma de hacerlo que he planteado pero no se como hacerla

                  Si alguien sabe o conoce otra forma espero que me ayude
                  Ya está solucionado
                  /Giuseppe

                  Professional Scriptcase Services
                  Some Customers opinions

                  Comment


                  • #10
                    lol lo que Gui dijo =P

                    Comment


                    • #11
                      Originally posted by kafecadm View Post
                      lol lo que Gui dijo =P
                      Je, no, a lo que me refería es que esta mañana me conecté con él en remoto y lo dejamos solucionado.
                      /Giuseppe

                      Professional Scriptcase Services
                      Some Customers opinions

                      Comment


                      • #12
                        wooow... what a good boy you are man.. so proud of ya.. =P

                        Comment

                        Working...
                        X