【问题标题】:uploading multiple files with pyramid使用金字塔上传多个文件
【发布时间】:2019-10-18 12:32:05
【问题描述】:

尝试使用 python 一次上传多个文件。 upload.html源代码如下:

        <form name="frmRegister" method="post" accept-charset="utf-8" enctype="multipart/form-data" class="form-horizontal">
             <div class="control-group">
                 <div class="controls">
                    <input type="file" name="files" multiple='multiple'>
                 </div>
             </div>
             <div class="control-group">
                 <div class="controls">
                    <input class="btn btn-primary" type="submit" name="btnSubmit" value="Add Product" />
                 </div>
             </div>
        </form>

在我的 admin.py 中:

    @view_config(context="mycart:resources.Product", name="add", renderer='admin/mall/product/add.jinja2', permission = 'admin')
    @view_config(context="mycart:resources.Product", name="add", request_method="POST",  renderer='admin/mall/product/add.jinja2', permission = 'admin')
    def product_add(context, request):
        if 'btnSubmit' in request.POST:
            print ("files >>> ", request.POST['files'])

在我的终端中,它只显示 FieldStorage('files', u'DSC01973.JPG') 而我选择了 'DSC01975.JPG', 'DSC01976.JPG'。

为什么会这样?

【问题讨论】:

  • 我现在没有 Pyramid 环境(在 iPad 上)。检查request.POSTrequest.POST.items?
  • 感谢您的回复,我已经使用 request.POST.getall 修复了它
  • 太棒了!我知道 Django 有 getlist 或类似的东西。祝你好运!请写下您的解决方案作为答案,以便其他人受益。另外,如果您有空闲时间,请检查我的想法,看看您得到了什么。它也会帮助我和其他人。
  • 当然,我没有使用 django,只是学习金字塔,但感谢您的提醒

标签: python file-upload pyramid


【解决方案1】:

我已经找到解决方法了,相信还有很多其他的,如果有,请随时大声呼喊:

    fileslist = request.POST.getall('files')
    print ("My files listing: ", fileslist)
    for f in fileslist:
        print ( "individual files: ", f )

【讨论】:

    【解决方案2】:

    我可以用以下函数解决这个问题:

    from cgi import FieldStorage
    def get_all_file_data_list(request):
        return [x for x in request.POST.values() if isinstance(x, FieldStorage)]
    

    【讨论】:

      猜你喜欢
      • 2016-08-25
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 2013-12-03
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      相关资源
      最近更新 更多