HTTP अनुरोध (os.stat के लिए) से वास्तविक फ़ाइल प्राप्त करना

वोट
2

मैं किसी अपलोड की गई फ़ाइल के मेटा डेटा को पुनः प्राप्त करना चाहूंगा:

st = os.stat(file_path)

हालाँकि मुझे यकीन नहीं है कि http अनुरोध से file_path विशेषता को पार्स कैसे करें। उदाहरण के लिए, मैंने उपयोग किया है:

request.FILES

लेकिन फिर प्राप्त करें:

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

मैं भी अनुरोध को क्रमबद्ध करता हूं, जैसे:

serializer = FileSerializer(data=request.data)

मुझे HTTP अपलोड में वास्तविक अपलोड की गई फ़ाइल कैसे मिलेगी?

04/05/2020 को 11:50
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

हालांकि यह संदेहास्पद है कि यह सामान्य बात है पहले __ फाइल को स्थायी स्थान पर सहेजा जाए (यह क्लाउड स्टोरेज आदि पर लागू नहीं हो सकता है), उत्तर है:

अपलोड की गई फ़ाइल Django द्वारा अस्थायी संग्रहीत जब या तो स्मृति में (अगर छोटे) या के साथ डिस्क पर अपलोड संचालकों

सभी UploadedFiles में आकार , नाम जैसी विशेषताएं होंगी।

यदि TemporaryFileUploadHandler फ़ाइल को संग्रहीत करने के लिए उपयोग किया गया था - इस फ़ाइल में request.FILES TemporaryUploadedFile होगा और होगा temporary_file_path() तरीका:

for f in request.FILES.getlist("file_field"):
    try:
        fstats = os.stat(f.temporary_file_path())
    except AttributeError:
        # do something
    # file processing logic
06/05/2020 को 18:47
का स्रोत उपयोगकर्ता

वोट
0

Http अनुरोध से वास्तविक फ़ाइल प्राप्त करने के लिए आप इसका उपयोग कर सकते हैं:

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

जहां XYZ इनपुट टैग में नाम विशेषता का मूल्य है। ऐशे ही:

<input type="file" name="XYZ" aria-label="Upload File" id="_upload_file">
13/05/2020 को 00:18
का स्रोत उपयोगकर्ता

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