我试图通过HTTP帖子获取文件的文件名和文件大小。
我可以使用$user_id = $_GET["user_id"]
使用get_file = request.POST['file'].file
获取文件,使用get_filename = request.POST['file'].filename
获取文件名但是当我get_file_size = os.stat(get_file).st_size
获取上传文件的大小时,它会抛出一个错误说
“TypeError:强制转换为Unicode:需要字符串或缓冲区,找到实例”
那么我如何获得文件大小并检查它是否小于10Mb?
答案 0 :(得分:0)
您做错了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
文件大小以字节为单位。