WebUploader envío de archivos grandes y ejemplos de código detalladas

Carpeta lógica de procesamiento de base de datos

DBFolder clase pública

{

    JSONObject raíz;

   

    DBFolder pública ()

    {

        this.root = new JSONObject ();

        this.root.put ( "F_ID", "");

        this.root.put ( "f_nameLoc", "根 目录");

        this.root.put ( "f_pid", "");

        this.root.put ( "f_pidRoot", "");

    }

   

    / **

     * El JSONArray convierte en un mapa

     * @param carpetas

     * @regreso

     * /

    pública Map <String, JSONObject> Todić (carpetas JSONArray)

    {

        Map <String, JSONObject> dt = new HashMap <String, JSONObject> ();

        for (int i = 0, l = folders.size (); i <l; ++ i)

        {

            JSONObject o = folders.getJSONObject (i);

            String id = o.getString ( "F_ID");

            dt.put (id, o);

        }

        volver dt;

    }

   

    pública Map <String, JSONObject> foldersToDic (String pidRoot)

    {

        // cargar el directorio raíz predeterminado

        Cadena SQL = String.Format ( "select F_ID, f_nameLoc, f_pid, f_pidRoot de up6_folders donde f_pidRoot = '% s'", pidRoot);

 

        SQLExec se = nuevo SQLExec ();

        JSONArray carpetas = se.exec ( "up6_folders", SQL, "F_ID, f_nameLoc, f_pid, f_pidRoot", "");

        volver this.toDic (carpetas);

    }

   

    pública ArrayList <JSONObject> sortByPid (Map <String, JSONObject> dt, Cadena idCur, ArrayList <JSONObject> PSORT) {

 

        Cadena cur = idCur;

        while (true)

        {

            // clave no existe

            si (dt.containsKey (act)!) break;

 

            JSONObject D = dt.get (act); // comprobar la ID padre

            psort.add (0, d); superficie superior // nodo padre           

            act = d.getString ( "f_pid") ajuste () ;. // tomar la Identificación de los padres

 

            si la rotura (cur.trim () == "0");

            si (StringUtils.isBlank (act)) break;

        }

        PSORT regresar;

    }

   

 

    pública JSONArray build_path_by_id (JSONObject fdCur) {

 

        String id = fdCur.getString ( "F_ID") recortar ();. //

        Cadena pidRoot = fdCur.getString ( "f_pidRoot") recortar ();. //

 

        // directorio raíz

        ArrayList <JSONObject> PSORT = new ArrayList <JSONObject> ();

        si (StringUtils.isBlank (id))

        {

            psort.add (0, this.root);

 

            retorno JSONArray.fromObject (PSORT);

        }

 

        // tabla de asignación de directorio de construcción (id, carpeta)

        Map <String, JSONObject> dt = this.foldersToDic (pidRoot);

 

        // jerárquicamente catálogo de venta

        PSORT = this.sortByPid (dt, ID, PSORT);

 

        SQLExec se = nuevo SQLExec ();

        // es un subdirectorio -> Añadir directorio raíz

        if (! StringUtils.isBlank (pidRoot))

        {

            JSONObject raíz = se.read ( "up6_files"

                    "F_ID, f_nameLoc, f_pid, f_pidRoot"

                    , Nuevo SqlParam [] {new SqlParam ( "F_ID", pidRoot)});

            psort.add (0, raíz);

        } // directorio raíz -> directorio raíz complemento

        else if (! StringUtils.isBlank (id) && StringUtils.isBlank (pidRoot))

        {

            JSONObject raíz = se.read ( "up6_files"

                    "F_ID, f_nameLoc, f_pid, f_pidRoot"

                    , Nuevo SqlParam [] {new SqlParam ( "F_ID", id)});

            psort.add (0, raíz);

        }

        psort.add (0, this.root);

 

        retorno JSONArray.fromObject (PSORT);

    }

   

    pública FileInf leer (String id) {

        SQLExec se = nuevo SQLExec ();

        Cadena SQL = String.Format ( "seleccionar f_pid, f_pidRoot, f_pathSvr de up6_files donde F_ID = '% s' union select f_pid, f_pidRoot, f_pathSvr de up6_folders donde F_ID = '% s'", de la identificación, id);

        datos JSONArray = se.exec ( "up6_files", sql, "f_pid, f_pidRoot, f_pathSvr", "");

        JSONObject o = (JSONObject) data.get (0);

 

        FileInf archivo = new FileInf ();

        file.id = id;

        file.pid = o.getString ( "f_pid") recortar ().;

        file.pidRoot = o.getString ( "f_pidRoot") recortar ().;

        file.pathSvr = o.getString ( "f_pathSvr") recortar ().;

        archivo de retorno;

    }

   

    pública de Boole exist_same_file (String nombre, cadena PID)

    {

        SqlWhereMerge cantidad nueva SqlWhereMerge = ();

        swm.equal ( "f_nameLoc", name.trim ());

        swm.equal ( "f_pid", pid.trim ());

        swm.equal ( "f_deleted", 0);

 

        Cadena SQL = String.Format ( "seleccionar F_ID de up6_files donde% s", swm.to_sql ());

 

        SQLExec se = nuevo SQLExec ();

        JSONArray arr = se.exec ( "up6_files", SQL, "F_ID", "");

        arr.size volver ()> 0;

    }

   

    / **

     * Comprobar si existe un directorio con el mismo nombre

     * @Param nombre

     * @Param pid

     * @regreso

     * /

    exist_same_folder pública de Boole (String nombre, cadena PID)

    {

        SqlWhereMerge cantidad nueva SqlWhereMerge = ();

        swm.equal ( "f_nameLoc", name.trim ());

        swm.equal ( "f_deleted", 0);

        swm.equal ( "LTRIM (f_pid)", pid.trim ());

        Cadena donde = swm.to_sql ();

 

        Cadena SQL = String.Format ( "(seleccionar F_ID de up6_files donde) la unión% s (seleccionar F_ID de up6_folders donde% s)", en donde, en donde);

 

        SQLExec se = nuevo SQLExec ();

        JSONArray fid = se.exec ( "up6_files", SQL, "F_ID", "");

        fid.size retorno ()> 0;     

    }

   

    pública de Boole rename_file_check (String nuevoNombre, Cadena pid)

    {

        SQLExec se = nuevo SQLExec ();           

        JSONArray res = se.select ( "up6_files"

            "F_ID"

            , Nuevo SqlParam [] {

                nueva SqlParam ( "f_nameLoc", nuevoNombre)

                , Nuevo SqlParam ( "f_pid", pid)

            }, "");

        res.size retorno ()> 0;

    }

   

    pública de Boole rename_folder_check (String nuevoNombre, Cadena pid)

    {

        SQLExec se = nuevo SQLExec ();

        JSONArray res = se.select ( "up6_folders"

            "F_ID"

            , Nuevo SqlParam [] {

                nueva SqlParam ( "f_nameLoc", nuevoNombre)

                , Nuevo SqlParam ( "f_pid", pid)

            }, "");

        res.size retorno ()> 0;

    }

 

    rename_file pública vacío (nombre String, String id) {

        SQLExec se = nuevo SQLExec ();

        se.update ( "up6_files"

            , Nuevo SqlParam [] {new SqlParam ( "f_nameLoc", nombre)}

            , Nuevo SqlParam [] {new SqlParam ( "F_ID", id)});

    }

   

    pública rename_folder void (String nombre, String Id, Cadena pid) {

        SQLExec se = nuevo SQLExec ();

        se.update ( "up6_folders"

            , Nuevo SqlParam [] {new SqlParam ( "f_nameLoc", nombre)}

            , Nuevo SqlParam [] {new SqlParam ( "F_ID", id)});

    }

}

 

1. webuploader.js probablemente alrededor de 4880 líneas de código, la siguiente componente de entrada generado dinámicamente (de entrada puede ser la búsqueda directa), aumentar las propiedades webkitdirectory.

función FileUploader (fileLoc, mgr)

{

    var _Está = esta;

    this.id = fileLoc.id;

    this.ui = {mensaje: null, proceso: nulo, por ciento: null, BTN: {DEL: null, cancelación: null, mensaje: null, parada: null}, div: null};

    this.isFolder = false; // no una carpeta

    this.app = mgr.app;

    this.Manager = mgr; // puntero gestor de carga

    this.event = mgr.event;

    this.Config = mgr.Config;

    this.fields = jQuery.extend ({}, mgr.Config.Fields, fileLoc.fields); // para cada uno campos de objetos que llevan una banda de la presente

    this.State = this.Config.state.None;

    this.uid = this.fields.uid;

    this.fileSvr = {

          pid: ""

        , carné de identidad: ""

        , PidRoot: ""

        , F_fdTask: falsa

        , F_fdChild: falsa

        UID: 0

        , NameLoc: ""

        , NameSvr: ""

        , PathLoc: ""

        , PathSvr: ""

        , PathRel: ""

        , MD5: ""

        , Lenloc: "0"

        , SizeLoc: ""

        , FilePos: "0"

        , LenSvr: "0"

        , PerSvr: "0%"

        , Completa: falsa

        , Eliminado: falsa

    }; // JSON obj, información del servidor de archivos

    this.fileSvr = jQuery.extend (this.fileSvr, fileLoc);

2. Se puede obtener la ruta

     this.open_files = function (JSON)

     {

         for (var i = 0, l = json.files.length; i <l; ++ i)

        {

             this.addFileLoc (json.files [i]);

         }

         setTimeout (function () {_this.PostFirst ();}, 500);

     };

     this.open_folders = function (JSON)

    {

        for (var i = 0, l = json.folders.length; i <l; ++ i) {

            this.addFolderLoc (json.folders [i]);

        }

         setTimeout (function () {_this.PostFirst ();}, 500);

     };

     this.paste_files = function (JSON)

     {

         for (var i = 0, l = json.files.length; i <l; ++ i)

         {

             this.addFileLoc (json.files [i]);

         }

     };

 

 

La mayor parte de la lógica del código de fondo es la misma, actualmente soporta MySQL, Oracle, SQL. Antes de usar la necesidad de configurar la base de datos, usted me puede referirse a escribir este artículo: http://blog.ncmem.com/wordpress/2019/08/07/java carga y descarga de archivos de gran tamaño /

 

Supongo que te gusta

Origin www.cnblogs.com/songsu/p/12553671.html
Recomendado
Clasificación