def upload_file()

in dlvm/nvidia/webapp/server.py [0:0]


def upload_file():
  logging.info(request.files)
  if 'image' not in request.files:
    logging.error('Error. No file part')
    return redirect(request.url)
  file = request.files['image']
  if not file.filename:
    logging.error('Not selected file')
    return redirect(request.url)
  if file and allowed_file(file.filename):
    filename = secure_filename(file.filename)
    user_image = os.path.join(app.config['UPLOAD_FOLDER'], filename)
    file.save(user_image)

  # Call API for prediction.
  predict_request = conversion_helper(MODEL_TYPE, filename)
  try:
    if predict_request:
      response = model_predict(predict_request)
      if response:
        prediction_class = response.get('predictions')[0].get('classes') - 1
        prediction_probabilities = response.get('predictions')[0].get(
          'probabilities')
        if prediction_class:
          return render_template('index.html', init=True, user_image=filename,
                                 prediction=classes[prediction_class])
      else:
        return render_template('index.html', init=True,
                               prediction=None)
  except Exception as e:
    logging.exception('Not a valid request: {} '.format(e))
    return redirect(request.url)