开发了一个上传文件的api服务,框架使用的是fastapi。
在应用中,发现两个客户端访问api时,返回400错误。
经过调查,发现是文件类型判断导致的,因为我在api代码中增加了文件类型判断,只允许上传docx文件。判断逻辑如下:
allowed_file_types = [
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
]
if file.content_type not in allowed_file_types:
print(file.content_type)
raise HTTPException(status_code=400, detail='File type must be docx')
其中一个客户端访问api时,不携带文件类型信息,无法通过文件类型判断,导致正确类型的文件也会返回400错误。浏览器版本较新,所以推测是操作系统版本较旧导致的,操作系统是 MacOS10。
另一个客户端访问api时,携带的文件类型信息是wps,导致无法通过文件类型检测,这个是判断逻辑的问题。