Bir http isteğinden gerçek dosyayı alma (os.stat için)

oy
2

Yüklenen bir dosyanın meta verilerini aşağıdakileri kullanarak almak istiyorum:

st = os.stat(file_path)

Ancak nasıl http_ dosyadan file_path özniteliği ayrıştırmak için emin değilim. Örneğin, kullandım:

request.FILES

ama sonra:

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

Ayrıca, bu şekilde seri hale getirmek:

serializer = FileSerializer(data=request.data)

Yüklenen asıl dosyayı http isteklerinde nasıl edinebilirim?

Oluştur 04/05/2020 saat 11:50
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
0

Bu (bulut depolama vb için geçerli olmayabilir) kalıcı konuma kaydedilir genel before__ dosyasında yapılacak doğru şey ise o tartışılır olsa da, cevap:

Yüklenen dosya geçici olarak Django tarafından bellekte (küçükse) veya yükleme işleyicilerinin bulunduğu diskte depolandığında.

Tüm UploadedFiles öğelerinin boyut , ad gibi nitelikleri olacaktır.

Dosyayı depolamak için TemporaryFileUploadHandler kullanılmışsa - bu dosya request.FILES TemporaryUploadedFile olacak ve temporary_file_path() yöntem:

for f in request.FILES.getlist("file_field"):
    try:
        fstats = os.stat(f.temporary_file_path())
    except AttributeError:
        # do something
    # file processing logic
Cevap 06/05/2020 saat 18:47
kaynak kullanıcı

oy
0

Bir http isteğinden gerçek dosyayı almak için şunu kullanabilirsiniz:

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

burada XYZ, giriş etiketindeki ad özniteliğinin değeridir. Bunun gibi:

<input type="file" name="XYZ" aria-label="Upload File" id="_upload_file">
Cevap 13/05/2020 saat 00:18
kaynak kullanıcı

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