{"id":21540491,"url":"https://github.com/othercodes/uploader","last_synced_at":"2025-03-17T21:45:51.428Z","repository":{"id":14849361,"uuid":"17572474","full_name":"othercodes/uploader","owner":"othercodes","description":"Clase para la gestión de subida de archivos.","archived":false,"fork":false,"pushed_at":"2014-04-09T09:46:16.000Z","size":220,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-24T08:12:30.107Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/othercodes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-09T20:02:25.000Z","updated_at":"2016-04-01T15:16:13.000Z","dependencies_parsed_at":"2022-09-23T23:51:38.436Z","dependency_job_id":null,"html_url":"https://github.com/othercodes/uploader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/othercodes%2Fuploader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/othercodes%2Fuploader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/othercodes%2Fuploader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/othercodes%2Fuploader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/othercodes","download_url":"https://codeload.github.com/othercodes/uploader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244117099,"owners_count":20400739,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T04:19:06.922Z","updated_at":"2025-03-17T21:45:51.408Z","avatar_url":"https://github.com/othercodes.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"files-upload-class\n==================\n\nClase para la gestión de subida de archivos.\n\nConfiguración\n=============\n\nLo único que debemos hacer para usar esta clase es importarla en el script donde la usaremos:\n```php\ninclude 'upload.class.php';\n```\n\nUso\n===\n\nBien ahora veamos un ejemplo de uso de esta clase, supongamos que tenemos un formulario desde el cual subimos un archivo:\n\n**example-upload.html**\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n    \u003chead\u003e\n        \u003ctitle\u003eSubida de Archivos\u003c/title\u003e\n        \u003cmeta charset=\"UTF-8\"\u003e\n        \u003cmeta name=\"viewport\" content=\"width=device-width\"\u003e\n    \u003c/head\u003e\n    \u003cbody\u003e\n    \u003cform action=\"upload.php\" method=\"POST\" enctype=\"multipart/form-data\"\u003e\n        \u003clabel for=\"file\"\u003eFilename:\u003c/label\u003e\n        \u003cinput type=\"file\" name=\"file\" id=\"file\"\u003e\u003cbr\u003e\n        \u003cinput type=\"submit\" name=\"submit\" value=\"Submit\"\u003e\n    \u003c/form\u003e\n    \u003c/body\u003e\n\u003c/html\u003e\n```\n\nEs importante recordar que cuando queremos enviar archivos debemos establecer en el formulario el atributo enctype con el valor *multipart/form-data*, ademas debemos usar el elemento input con el atributo type en file y asignarme un nombre desde el atributo name.\n\n**example-upload.php**\n```php \ninclude 'upload.class.php';\nif (isset($_FILES['file'])) {\n    $uploaded = new Upload($_FILES['file']);\n    $types  = array('image/png');\n    $ext    = array('png');\n    $size   = 1;\n    $uploaded-\u003evalidate($size, $ext, $types);\n    $estado = $uploaded-\u003esave('stored/');\n    if($estado){\n       echo \"Imagen Guardada correctamente.\";\n       $uploaded-\u003erename('imagen1.png');\n    } else {\n       echo \"Imagen no valida.\";\n    }\n}\n```\n\nBien, vamos a comentar el código de arriba, lo primero que debemos fijarnos es que importamos la clase upload.class.php, esto es lógico ya que de lo contrario no podríamos usarla. En la linea 2 realizamos una evaluación sobre la variable FILES, para saber si se ha enviado o no un archivo, en caso afirmativo precederemos al proceso de dicho archivo. Una vez confirmado el envió del archivo instanciaremos un objeto de la clase Upload pasando le como único parámetro del constructor el array FILES con su correspondiente referencia al nombre del campo del formulario desde el que se a enviado el archivo, en este caso \"file\". Seguido creamos tres variables en las que estableceremos los parámetros de validación del archivo:\n\n* *$types*: es un array con los tipos MIME permitidos.\n* *$ext*: es un array con las extensiones permitidas.\n* *$size*: es el tamaño máximo en MB del archivo.\n\nAhora solo tenemos que pasar le estas variables al método *validate()* para que efectué la validación. Este método devolverá TRUE si el archivo cumple los requisitos y FALSE en caso contrario. Una vez hemos realizado la validación precederemos a guardar la imagen en el directorio deseado, en nuestro ejemplo usaremos la carpeta \"stored\", cabe destacar que debemos añadir la barra \"/\" al final del nombre de la carpeta donde se subirán las imágenes. Finalmente evaluamos si la subida a sido correcta o no y mostramos un mensaje informativo a los usuarios. Adicionamente podemos renombrar el archivo subido usando el método *rename()*. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fothercodes%2Fuploader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fothercodes%2Fuploader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fothercodes%2Fuploader/lists"}