{ "info": { "author": "Yohan Boniface", "author_email": "yohan.boniface@data.gouv.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Topic :: Scientific/Engineering :: GIS" ], "description": "[![Build Status](https://travis-ci.org/yohanboniface/falcon-multipart.svg?branch=master)](https://travis-ci.org/yohanboniface/falcon-multipart)\n\n# Parse multipart/form-data requests in Falcon\n\n##\u00a0Install\n\n pip install falcon-multipart\n\n\n## Usage\n\nAdd the `MultipartMiddleware` to your api middlewares:\n\n from falcon_multipart.middleware import MultipartMiddleware\n\n api = falcon.API(middleware=[MultipartMiddleware()])\n\nThis will parse any `multipart/form-data` incoming request, and put the keys\nin `req._params`, including files, so you get the field as other params.\n\n\n##\u00a0Dealing with files\n\nFiles will be available as [`cgi.FieldStorage`](https://docs.python.org/3/library/cgi.html),\nwith following main parameters:\n\n- `file`: act as a python file, you can call `read()` on it, and you will\n retrieve content (as *bytes*)\n- `filename`: the filename, if given\n- `value`: the file content in *bytes*\n- `type`: the content-type, or None if not specified\n- `disposition`: content-disposition, or None if not specified\n\n\n##\u00a0Example\n\n #\u00a0Say you have a form with those fields:\n # - title => a string\n # - image => an image file\n\n def on_post(req, resp, **kwargs):\n title = req.get_param('title')\n image = req.get_param('image')\n #\u00a0Read image as binary\n raw = image.file.read()\n # Retrieve filename\n filename = image.filename\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/yohanboniface/falcon-multipart", "keywords": "falcon multipart", "license": "WTFPL", "maintainer": "", "maintainer_email": "", "name": "falcon-multipart", "package_url": "https://pypi.org/project/falcon-multipart/", "platform": "", "project_url": "https://pypi.org/project/falcon-multipart/", "project_urls": { "Homepage": "https://github.com/yohanboniface/falcon-multipart" }, "release_url": "https://pypi.org/project/falcon-multipart/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "Multipart form parsing for Falcon.", "version": "0.2.0" }, "last_serial": 2869781, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "72cf72766c28ccba04c1fbb04d4a4eda", "sha256": "1e01e19271f4f587cbdfa996050934cb74f5e7bb1a6d0322d6bc263226e03711" }, "downloads": -1, "filename": "falcon-multipart-0.1.0.tar.gz", "has_sig": false, "md5_digest": "72cf72766c28ccba04c1fbb04d4a4eda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2783, "upload_time": "2016-04-13T13:10:38", "url": "https://files.pythonhosted.org/packages/c2/87/b848c11b501c71d2ebba497640c44e1426a4a7a8875022470d92a59dc9bc/falcon-multipart-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "4a2b0ac85ffb60e40660fe9eaf642807", "sha256": "134c88c2b50b343d93e1b0f2c73e0ce07a89928658af71abc9629f42331a189d" }, "downloads": -1, "filename": "falcon_multipart-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4a2b0ac85ffb60e40660fe9eaf642807", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5232, "upload_time": "2017-05-12T15:48:44", "url": "https://files.pythonhosted.org/packages/e1/a2/e50ffc3101ed6b91d1edc63b3586c424ef8071e1ef0ef7dcb8745e65fc14/falcon_multipart-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "301681845f50183a8f5ab0da53f1ba6d", "sha256": "9ae73fdddd94299f2cb181b8f1e8ab17d3ce182daabbb11ce862f0bd471a3d1d" }, "downloads": -1, "filename": "falcon-multipart-0.2.0.tar.gz", "has_sig": false, "md5_digest": "301681845f50183a8f5ab0da53f1ba6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3259, "upload_time": "2017-05-12T15:48:42", "url": "https://files.pythonhosted.org/packages/e0/a8/cc15f2ff95395859ffc9fedbbcc7731097716a4e4301c0476e24ac5f43c8/falcon-multipart-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4a2b0ac85ffb60e40660fe9eaf642807", "sha256": "134c88c2b50b343d93e1b0f2c73e0ce07a89928658af71abc9629f42331a189d" }, "downloads": -1, "filename": "falcon_multipart-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4a2b0ac85ffb60e40660fe9eaf642807", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5232, "upload_time": "2017-05-12T15:48:44", "url": "https://files.pythonhosted.org/packages/e1/a2/e50ffc3101ed6b91d1edc63b3586c424ef8071e1ef0ef7dcb8745e65fc14/falcon_multipart-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "301681845f50183a8f5ab0da53f1ba6d", "sha256": "9ae73fdddd94299f2cb181b8f1e8ab17d3ce182daabbb11ce862f0bd471a3d1d" }, "downloads": -1, "filename": "falcon-multipart-0.2.0.tar.gz", "has_sig": false, "md5_digest": "301681845f50183a8f5ab0da53f1ba6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3259, "upload_time": "2017-05-12T15:48:42", "url": "https://files.pythonhosted.org/packages/e0/a8/cc15f2ff95395859ffc9fedbbcc7731097716a4e4301c0476e24ac5f43c8/falcon-multipart-0.2.0.tar.gz" } ] }