私はdjangoアプリケーションを作成して、フォームのあるファイルのディレクトリをアップロードしています。Djangoディレクトリのアップロードサブディレクトリ名を取得
これは私がディレクトリのアップロードを可能に使用しています形式です:
class FileFieldForm(forms.Form):
file_field = forms.FileField(widget=forms.ClearableFileInput(attrs=
{'multiple': True, 'webkitdirectory': True, 'directory': True}))
これは、生のポストペイロードである:
------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
これは、フォームを処理するための図である。
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 = FileModel(file=f)
new_file.save()
return self.form_valid(form)
else:
return self.form_invalid(form)
問題は、djangoのファイルオブジェクトの名前にサブディレクトリ名がないことです。私は、ミドルウェアの処理要求の1つが、ファイル名からサブディレクトリ名を解析して削除していると仮定しています。ディレクトリ名とサブディレクトリ名を持つ元のファイル名を取得する方法はありますか?
感謝素晴らしいフォーマットのために@Moinuddin Quadri –
私はドキュメントからこれを逃した。私はこれを試してみる、それは動作するはずです。 – pratsJ