Как получить размер файла и имя файла в пирамиде? - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь получить как имя файла, так и размер файла, загруженного через сообщение HTTP.я могу получить файл, используя get_file = request.POST['file'].file и имя файла, используя get_filename = request.POST['file'].filename, но когда я делаю get_file_size = os.stat(get_file).st_size, чтобы получить размер загруженного файла, он выдает ошибку «TypeError: приведение в Unicode: нужна строка или буфер, экземплярнашел "Так как я могу получить размер файла и проверить, если это же меньше, чем 10 МБ?

1 Ответ

0 голосов
/ 12 июня 2018

Вы делаете это неправильно os.stat() метод принимает путь к файлу в качестве аргумента, и вы передаете ему объект файла.

Попробуйте использовать метод os.fstat().Он принимает дескриптор файла в качестве аргумента.

Вот рабочий код, который вы можете использовать:

size = 0
fp = request.POST.get('file')
if fp is not None:
    file = fp.file
    if hasattr(file, 'fileno'):
        size = os.fstat(file.fileno()).st_size

Размер файла в байтах.

...