Catching the error message in file-upload

Hello :)),

So Iā€™ve have already given the upload_file function the type ā€œxlsxā€. So everytime the User uploads something else they get this error:

Now what I want to do is being able to catch this message since Itā€™s not looking that good and show him my own customized error message.

I have tried it with if else and try expect but that msg seems to have a priority.

st.title(ā€œData-Uploadā€)
uploaded_file = st.file_uploader(
label=ā€œUpload here pleaseā€,
type=[ā€˜xlsxā€™],
help=ā€œUpload the required file here pleaseā€)

Would be very grateful for your help.

Hi @Lbayti

This seems to be the default file type error message as brought upon by the type=['xlsx'] option. So if we can comment that out, then we can implement an error catching mechanism.

Iā€™ve tried experimenting and came up with the following example code.

Code

import streamlit as st
import os

st.title("Data-Upload")

uploaded_file = st.file_uploader(
    label="Upload here please",
    #type=["xlsx"], # Comment out to evade Streamlit's built-in file type detector
    help="Upload the required file here please")


if uploaded_file is not None:
    filename, file_extension = os.path.splitext(uploaded_file.name)

    if (file_extension == ".xlsx") is True:
        st.success("File type is XLSX")
        # Perform intended task here ...
    else:
        st.error('File type is not XLSX')

Scenario 1:

Hereā€™s when the file type is XLSX:

Scenario 2:

Hereā€™s when the file type is not XLSX:

Thank you very much.

I guess I was too focused on catching the error, that I did not think about just letting it accept more file types.

Youā€™re welcome! Glad it helped.

Just in case, hereā€™s the entire code for the app:

# Catching the error message in file-upload 
import streamlit as st
import os

st.title("Data-Upload")

uploaded_file = st.file_uploader(
    label="Upload here please",
    #type=["xlsx"], # Comment out to evade Streamlit's built-in file type detector
    help="Upload the required file here please")


if uploaded_file is not None:
    filename, file_extension = os.path.splitext(uploaded_file.name)

    if (file_extension == ".xlsx") is True:
        st.success("File type is XLSX")
        # Perform intended task here ...
    else:
        st.error('File type is not XLSX')

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.