使用 Django 上传多个文件

2023-11-24

如何使用 Django 上传多个文件?


经过一番痛苦之后我最终得到了 uploadify (http://www.uploadify.com/)与 django 一起工作,但问题并不是真正的 django 的问题,而是让它与 Apple Mac 一起工作;该平台上的浏览器不会从 Flash 中提供 cookie;你需要手动设置它们:

所以我将这些包含在我的渲染响应中:

return render_to_response('files_upload.html', {
       'session_cookie_name': settings.SESSION_COOKIE_NAME,
       'session_key': request.session.session_key

并通过模板中规定的配置从 uploadify 呈现它们:

$(document).ready(function() {
    $('#fileInput').uploadify({
        'scriptData': {'{{session_cookie_name}}': '{{session_key}}'},

我已经看到在视图上使用装饰器可以更好地完成此操作,但这是我在中间件中放入的脏黑客,在会话中间件运行以恢复会话之前将 POST 复制到 COOKIE 中。

class FakeUploadCookieMiddleware(object):
   """TODO: replace the hardcoded url '/upload' with a 'reverse'."""
   def process_request(self, request):
       if request.path == '/upload/' \
           and request.POST.has_key(settings.SESSION_COOKIE_NAME):
           request.COOKIES[settings.SESSION_COOKIE_NAME] = \
               request.POST[settings.SESSION_COOKIE_NAME]
           logging.debug('Faking the session cookie for an upload: %s', \
               request.POST[settings.SESSION_COOKIE_NAME])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Django 上传多个文件 的相关文章

随机推荐