{"id":13395362,"url":"https://github.com/blueimp/jQuery-File-Upload","last_synced_at":"2025-03-13T20:32:10.255Z","repository":{"id":41370662,"uuid":"1129010","full_name":"blueimp/jQuery-File-Upload","owner":"blueimp","description":"File Upload widget with multiple file selection, drag\u0026drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.","archived":true,"fork":false,"pushed_at":"2023-05-25T09:11:07.000Z","size":4767,"stargazers_count":30947,"open_issues_count":52,"forks_count":7952,"subscribers_count":1582,"default_branch":"master","last_synced_at":"2024-10-30T01:51:06.421Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://blueimp.github.io/jQuery-File-Upload/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blueimp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null},"funding":{"github":["blueimp"]}},"created_at":"2010-12-01T15:35:32.000Z","updated_at":"2024-10-29T18:56:41.000Z","dependencies_parsed_at":"2023-10-20T18:29:28.489Z","dependency_job_id":null,"html_url":"https://github.com/blueimp/jQuery-File-Upload","commit_stats":{"total_commits":1143,"total_committers":113,"mean_commits":10.11504424778761,"dds":0.5056867891513561,"last_synced_commit":"0e92a4d4613d4ed5231ee0d8513519f2e04f99ba"},"previous_names":[],"tags_count":135,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blueimp%2FjQuery-File-Upload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blueimp%2FjQuery-File-Upload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blueimp%2FjQuery-File-Upload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blueimp%2FjQuery-File-Upload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blueimp","download_url":"https://codeload.github.com/blueimp/jQuery-File-Upload/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243478422,"owners_count":20297252,"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-07-30T17:01:54.040Z","updated_at":"2025-03-13T20:32:09.844Z","avatar_url":"https://github.com/blueimp.png","language":"PHP","readme":"# jQuery File Upload\n\n## Contents\n\n- [Description](#description)\n- [Demo](#demo)\n- [Features](#features)\n- [Security](#security)\n- [Setup](#setup)\n- [Requirements](#requirements)\n  - [Mandatory requirements](#mandatory-requirements)\n  - [Optional requirements](#optional-requirements)\n  - [Cross-domain requirements](#cross-domain-requirements)\n- [Browsers](#browsers)\n  - [Desktop browsers](#desktop-browsers)\n  - [Mobile browsers](#mobile-browsers)\n  - [Extended browser support information](#extended-browser-support-information)\n- [Testing](#testing)\n- [Support](#support)\n- [License](#license)\n\n## Description\n\n\u003e File Upload widget with multiple file selection, drag\u0026drop support, progress\n\u003e bars, validation and preview images, audio and video for jQuery.  \n\u003e Supports cross-domain, chunked and resumable file uploads and client-side\n\u003e image resizing.  \n\u003e Works with any server-side platform (PHP, Python, Ruby on Rails, Java,\n\u003e Node.js, Go etc.) that supports standard HTML form file uploads.\n\n## Demo\n\n[Demo File Upload](https://blueimp.github.io/jQuery-File-Upload/)\n\n## Features\n\n- **Multiple file upload:**  \n  Allows to select multiple files at once and upload them simultaneously.\n- **Drag \u0026 Drop support:**  \n  Allows to upload files by dragging them from your desktop or file manager and\n  dropping them on your browser window.\n- **Upload progress bar:**  \n  Shows a progress bar indicating the upload progress for individual files and\n  for all uploads combined.\n- **Cancelable uploads:**  \n  Individual file uploads can be canceled to stop the upload progress.\n- **Resumable uploads:**  \n  Aborted uploads can be resumed with browsers supporting the Blob API.\n- **Chunked uploads:**  \n  Large files can be uploaded in smaller chunks with browsers supporting the\n  Blob API.\n- **Client-side image resizing:**  \n  Images can be automatically resized on client-side with browsers supporting\n  the required JS APIs.\n- **Preview images, audio and video:**  \n  A preview of image, audio and video files can be displayed before uploading\n  with browsers supporting the required APIs.\n- **No browser plugins (e.g. Adobe Flash) required:**  \n  The implementation is based on open standards like HTML5 and JavaScript and\n  requires no additional browser plugins.\n- **Graceful fallback for legacy browsers:**  \n  Uploads files via XMLHttpRequests if supported and uses iframes as fallback\n  for legacy browsers.\n- **HTML file upload form fallback:**  \n  Allows progressive enhancement by using a standard HTML file upload form as\n  widget element.\n- **Cross-site file uploads:**  \n  Supports uploading files to a different domain with cross-site XMLHttpRequests\n  or iframe redirects.\n- **Multiple plugin instances:**  \n  Allows to use multiple plugin instances on the same webpage.\n- **Customizable and extensible:**  \n  Provides an API to set individual options and define callback methods for\n  various upload events.\n- **Multipart and file contents stream uploads:**  \n  Files can be uploaded as standard \"multipart/form-data\" or file contents\n  stream (HTTP PUT file upload).\n- **Compatible with any server-side application platform:**  \n  Works with any server-side platform (PHP, Python, Ruby on Rails, Java,\n  Node.js, Go etc.) that supports standard HTML form file uploads.\n\n## Security\n\n⚠️ Please read the [VULNERABILITIES](VULNERABILITIES.md) document for a list of\nfixed vulnerabilities\n\nPlease also read the [SECURITY](SECURITY.md) document for instructions on how to\nsecurely configure your Web server for file uploads.\n\n## Setup\n\njQuery File Upload can be installed via [NPM](https://www.npmjs.com/):\n\n```sh\nnpm install blueimp-file-upload\n```\n\nThis allows you to include [jquery.fileupload.js](js/jquery.fileupload.js) and\nits extensions via `node_modules`, e.g:\n\n```html\n\u003cscript src=\"node_modules/blueimp-file-upload/js/jquery.fileupload.js\"\u003e\u003c/script\u003e\n```\n\nThe widget can then be initialized on a file upload form the following way:\n\n```js\n$('#fileupload').fileupload();\n```\n\nFor further information, please refer to the following guides:\n\n- [Main documentation page](https://github.com/blueimp/jQuery-File-Upload/wiki)\n- [List of all available Options](https://github.com/blueimp/jQuery-File-Upload/wiki/Options)\n- [The plugin API](https://github.com/blueimp/jQuery-File-Upload/wiki/API)\n- [How to setup the plugin on your website](https://github.com/blueimp/jQuery-File-Upload/wiki/Setup)\n- [How to use only the basic plugin.](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin)\n\n## Requirements\n\n### Mandatory requirements\n\n- [jQuery](https://jquery.com/) v1.7+\n- [jQuery UI widget factory](https://api.jqueryui.com/jQuery.widget/) v1.9+\n  (included): Required for the basic File Upload plugin, but very lightweight\n  without any other dependencies from the jQuery UI suite.\n- [jQuery Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js)\n  (included): Required for\n  [browsers without XHR file upload support](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).\n\n### Optional requirements\n\n- [JavaScript Templates engine](https://github.com/blueimp/JavaScript-Templates)\n  v3+: Used to render the selected and uploaded files.\n- [JavaScript Load Image library](https://github.com/blueimp/JavaScript-Load-Image)\n  v2+: Required for the image previews and resizing functionality.\n- [JavaScript Canvas to Blob polyfill](https://github.com/blueimp/JavaScript-Canvas-to-Blob)\n  v3+:Required for the resizing functionality.\n- [blueimp Gallery](https://github.com/blueimp/Gallery) v2+: Used to display the\n  uploaded images in a lightbox.\n- [Bootstrap](https://getbootstrap.com/) v3+: Used for the demo design.\n- [Glyphicons](https://glyphicons.com/) Icon set used by Bootstrap.\n\n### Cross-domain requirements\n\n[Cross-domain File Uploads](https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads)\nusing the\n[Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js)\nrequire a redirect back to the origin server to retrieve the upload results. The\n[example implementation](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/main.js)\nmakes use of\n[result.html](https://github.com/blueimp/jQuery-File-Upload/blob/master/cors/result.html)\nas a static redirect page for the origin server.\n\nThe repository also includes the\n[jQuery XDomainRequest Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/cors/jquery.xdr-transport.js),\nwhich enables limited cross-domain AJAX requests in Microsoft Internet Explorer\n8 and 9 (IE 10 supports cross-domain XHR requests).  \nThe XDomainRequest object allows GET and POST requests only and doesn't support\nfile uploads. It is used on the\n[Demo](https://blueimp.github.io/jQuery-File-Upload/) to delete uploaded files\nfrom the cross-domain demo file upload service.\n\n## Browsers\n\n### Desktop browsers\n\nThe File Upload plugin is regularly tested with the latest browser versions and\nsupports the following minimal versions:\n\n- Google Chrome\n- Apple Safari 4.0+\n- Mozilla Firefox 3.0+\n- Opera 11.0+\n- Microsoft Internet Explorer 6.0+\n\n### Mobile browsers\n\nThe File Upload plugin has been tested with and supports the following mobile\nbrowsers:\n\n- Apple Safari on iOS 6.0+\n- Google Chrome on iOS 6.0+\n- Google Chrome on Android 4.0+\n- Default Browser on Android 2.3+\n- Opera Mobile 12.0+\n\n### Extended browser support information\n\nFor a detailed overview of the features supported by each browser version and\nknown operating system / browser bugs, please have a look at the\n[Extended browser support information](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).\n\n## Testing\n\nThe project comes with three sets of tests:\n\n1. Code linting using [ESLint](https://eslint.org/).\n2. Unit tests using [Mocha](https://mochajs.org/).\n3. End-to-end tests using [blueimp/wdio](https://github.com/blueimp/wdio).\n\nTo run the tests, follow these steps:\n\n1. Start [Docker](https://docs.docker.com/).\n2. Install development dependencies:\n   ```sh\n   npm install\n   ```\n3. Run the tests:\n   ```sh\n   npm test\n   ```\n\n## Support\n\nThis project is actively maintained, but there is no official support channel.  \nIf you have a question that another developer might help you with, please post\nto\n[Stack Overflow](https://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload)\nand tag your question with `blueimp jquery file upload`.\n\n## License\n\nReleased under the [MIT license](https://opensource.org/licenses/MIT).\n","funding_links":["https://github.com/sponsors/blueimp"],"categories":["PHP","JavaScript","jQuery","File","Form Widgets","[PHP](#php)","Form Widgets [🔝](#readme)","UI","10. 表单处理","Animation","Uncategorized","表单组件","Table of Contents","add-ons"],"sub_categories":["RESTful","Data Table","File Uploader","Upload","文件上传","10.4 上传组件 ###","Forms","Uncategorized","File Libraries","10.5 上传组件","inputs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblueimp%2FjQuery-File-Upload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblueimp%2FjQuery-File-Upload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblueimp%2FjQuery-File-Upload/lists"}