6

尝试使用 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'。

为什么会这样?

4

2 回答 2

10

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

    fileslist = request.POST.getall('files')
    print ("My files listing: ", fileslist)
    for f in fileslist:
        print ( "individual files: ", f )
于 2012-12-27T08:15:18.937 回答
1

我可以使用以下功能解决问题:

from cgi import FieldStorage
def get_all_file_data_list(request):
    return [x for x in request.POST.values() if isinstance(x, FieldStorage)]
于 2019-06-26T11:59:53.623 回答