如何将内存文件转换为文件对象

时间:2018-06-16 06:41:30

标签: django

我正在上传文件然后尝试阅读但我正在

TypeError: expected str, bytes or os.PathLike object, not InMemoryUploadedFile

我的观看功能是

def upload(request,pk):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            filehandle=request.FILES['file']

            if filehandle:
                print("File recieved")
            workbook = xlrd.open_workbook(filehandle)
            worksheet = workbook.sheet_by_index(0)
            rows = []
            #Some Operartion
            workbook.close()
            return HttpResponseRedirect('/products/')

1 个答案:

答案 0 :(得分:0)

你可以这样试试。 open_workbook可以通过.read()by param file_contents

从请求中读取您的文件
import xlrd

def upload(request,pk):
    if request.method == 'POST':
        filehandle=request.FILES['file']
        workbook = xlrd.open_workbook(filename='test.xlsx', file_contents=filehandle.read())
        worksheet = workbook.sheet_by_index(0)