标签: directory-upload

Django目录上传获取子目录名称

我正在编写一个django应用程序来上传带有表单的文件目录.

这是我正在使用的表单,允许上传目录:

class FileFieldForm(forms.Form):
    file_field = forms.FileField(widget=forms.ClearableFileInput(attrs=
        {'multiple': True, 'webkitdirectory': True, 'directory': True}))
Run Code Online (Sandbox Code Playgroud)

这是原始邮件有效负载:

------WebKitFormBoundaryPbO3HkrKGbBwgD3sd1
Content-Disposition: form-data; name="csrfmiddlewaretoken"

F575Bgl4U9dzgwePPeSW2ISZKk5c3CnRoqFasdasD0Hep6nD0LnAAObXbF92SUa96NbO2
------WebKitFormBoundaryPbO3HkrKGbBwgDsd31
Content-Disposition: form-data; name="file_field";
filename="MainDir/SubDir1/1.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryPbOasd3HkrKGbBwgD31
Content-Disposition: form-data; name="file_field";
filename="MainDir/SubDir2/2.jpg"
Content-Type: image/jpeg
Run Code Online (Sandbox Code Playgroud)

这是处理表单的视图:

class FileFieldView(FormView):
    form_class = FileFieldForm
    template_name = 'upload.html'
    success_url = 'upload'

    def post(self, request, *args, **kwargs):
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        files = request.FILES.getlist('file_field')
        if form.is_valid():
            for f in files:
                pprint("Name of file is " + f._get_name() + ' ' + f.field_name, sys.stderr)
                new_file = …
Run Code Online (Sandbox Code Playgroud)

python django file-upload django-forms directory-upload

7
推荐指数
1
解决办法
2842
查看次数

如何在Firefox中过滤掉上传处理程序中的目录?

问题

我有以下代码片段,用于在文件拖放上传期间获取文件信息:

var files = event.dataTransfer.files;

for (var i = 0; i < files.length; i++) {
    var file = files[i];

    // I need notDirectory(file) function.
    notDirectory(file).then(function(file) {
      output.innerHTML += 
           `<p>
              Name: ${file.name}</br> 
              Size: ${file.size} bytes</br> 
              Type: ${file.type}</br> 
              Modified Date: ${file.lastModifiedDate}
            </p>`;
    });
}
Run Code Online (Sandbox Code Playgroud)

我做了研究,发现Firefox不支持目录上传,但允许客户端将它们拖放到放置区域.

如何在Firefox中过滤掉上传处理程序中的目录?

更新

你可以在这里找到工作样本:https://jsfiddle.net/gevorgha/exs3ta25/

请考虑我需要它来处理最新稳定的Firefox版本--46.0.1而不启用浏览器的额外首选项,因为我不想要求用户启用首选项以使上传正常工作.

javascript firefox mozilla file-upload directory-upload

5
推荐指数
1
解决办法
815
查看次数