Ophalen van het eigenlijke dossier van een http-aanvraag (voor os.stat)

stemmen
2

Ik wil de metagegevens van een geüpload bestand opvragen door gebruik te maken:

st = os.stat(file_path)

Ik weet echter niet zeker hoe ik het file_path attribuut van het http verzoek moet ontleden. Ik heb bijvoorbeeld gebruikt:

request.FILES

maar dan krijgen:

TypeError: stat: path should be string, bytes, os.PathLike or integer, not MultiValueDict

Ik serialiseer het verzoek ook zo:

serializer = FileSerializer(data=request.data)

Hoe krijg ik het eigenlijke geüploade bestand in de http-vereisten?

De vraag is gesteld op 04/05/2020 om 11:50
bron van user
In andere talen...                            


2 antwoorden

stemmen
0

Hoewel het twijfelachtig is of dit in het algemeen goed is om te doen voordat__ bestand wordt opgeslagen op een permanente locatie (het kan niet van toepassing zijn op cloud-opslag etc), is het antwoord wel:

Wanneer het geüploade bestand tijdelijk wordt opgeslagen door Django, hetzij in het geheugen (indien klein), hetzij op schijf met upload handlers.

Alle geüploade bestanden hebben attributen zoals grootte, naam.

Als TemporaryFileUploadHandler werd gebruikt om bestand op te slaan - dit bestand in request.FILESzal zijn TemporaryUploadedFile" rel="nofollow noreferrer">TemporaryUploadedFile en zal temporary_file_path()methode hebben:

antwoordde op 06/05/2020 om 18:47
bron van user

stemmen
0

Om het eigenlijke bestand uit een http-aanvraag op te halen kunt u dit gebruiken:

if request.method == 'POST':
        uploaded_file = request.FILES['XYZ']
        fs = FileSystemStorage()
        server_file_name = fs.save(uploaded_file.name, uploaded_file)

waarbij XYZ de waarde van het naamskenmerk in de invoertag is. Zoals dit:

<input type="file" name="XYZ" aria-label="Upload File" id="_upload_file">
antwoordde op 13/05/2020 om 00:18
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more