使用<输入类型=“文件”>在姜戈中

发布于 2024-11-19 06:50:23 字数 660 浏览 3 评论 0 原文

当有人使用 元素选择文件后单击“提交”时,如何在 Django 中访问该文件的内容?

(看起来发送到请求处理程序的请求在任何地方都没有文件的踪迹——甚至在 request.FILES 中也没有。)

目前我的模板如下:

<form method="post" enctype="multipart/form-data">
 <input type="file" enctype="multipart/form-data" name="file" accept="text/csv"/>
 <input type="submit" value="Upload" />
</form>

视图:

def HandleRequest(request):
  print "**** request:", request

我没有看到任何东西打印有关该文件的信息。

注意:

在 Django 中可能还有其他方法可以做到这一点,但我正在寻找使用简单的 input 标签的解决方案,而不是其他东西(这可能会涉及Javascript)。

When someone clicks Submit after selecting a file with the <input type="file"> element, how do I access the contents of the file in Django?

(It seems like the request sent to the request handler has no trace of the file anywhere -- not even in request.FILES.)

Currently my template is like:

<form method="post" enctype="multipart/form-data">
 <input type="file" enctype="multipart/form-data" name="file" accept="text/csv"/>
 <input type="submit" value="Upload" />
</form>

View:

def HandleRequest(request):
  print "**** request:", request

I don't see anything being printed about the file.

Note:

There's probably other ways to do this in Django, but I'm looking a solution using the simple input tag, and not something else (which would probably involve Javascript).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

垂暮老矣 2024-11-26 06:50:23

您发布的代码,正如它发布的那样,工作正常。 HTML 是健全的(尽管我认为 上的 enctype 充其量是多余的),并且一个非常简单的视图显示了 InMemoryFile 发布后。问题一定出在浏览器和您的视图之间。一些需要检查的事情:

  • 中间件。
  • 阿帕奇。
  • nginx。
  • 您视图中的装饰器。
  • mod_wsgi 配置。

The code you posted, as it is posted, works fine. The HTML is sound (though I think the enctype on the <input> is redundant at best), and a very simple view shows an InMemoryFile after the POST. The problem must lie in something between the browser and your view. Some things to check:

  • Middleware.
  • Apache.
  • Nginx.
  • Decorators on your view.
  • mod_wsgi configuration.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文