如何将上传的jpeg文件传递给Django中的函数

时间:2019-04-06 04:44:01

标签: django python-3.x ocrspace-ocr-api

我正在尝试用Django上传jpeg,然后将jpeg传递到一个函数中,该函数将读取向OCR API发送发送请求的信息。看来我无法传递jpeg文件本身,也无法弄清楚如何仅将字节传递给函数。

views-试图在upload_file函数中调用read_menu函数。

def ocr_space_file(filename, overlay=False, api_key='helloworld', language='eng'):
    payload = {'isOverlayRequired': overlay,
               'apikey': api_key,
               'language': language,
               }
    with open(filename, 'rb') as f:
        r = requests.post('https://api.ocr.space/parse/image',
                          files={filename: f},
                          data=payload,
                          )
    return r.content.decode()

def read_menu(image, api_key):
    output = ocr_space_file(image, overlay=False, api_key=api_key, language='eng')
    output = output.split('\\n')
    words = [i.replace('\\r',"") for i in output]
    return words

def upload_file(request):
    if request.method == 'POST':
        uploaded_menu = request.FILES['menu_image'].file.read()
        with open(uploaded_menu, 'rb') as f:
            words = read_menu(f, api_key)
            #print(type(f))
        print(words)

    return render(request, 'main/home.html')

这会在“ 嵌入的空字节”

此外,如果有任何见解,read_menu(“ menu_image.jpeg”)可以在本地工作。

感谢任何帮助或指导!谢谢!

1 个答案:

答案 0 :(得分:0)

在您的代码中,您没有调用read_menu函数。所有事情都取决于upload_file函数,它将调用带有注释的read_menu函数。请取消注释,然后重试。