You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Taipy GUI文件选择器异常及上传提示屏蔽技术问询

Taipy File Selector Issues: Warning, Incorrect File Path, and Auto-Pop Notification

Problem Details

  • Variable Warning: When accessing state.file_path in the upload function, this warning appears:

    TaipyGuiWarning: :
    Can't find matching variable for tpec_TpExPr_file_path_TPMDL_4 on context: main

  • Incorrect File Path: The printed path includes an incrementing numeric suffix (e.g., C:\xxx\Temp\hemisphere_STEP.10.stp instead of the actual C:\xxx\Temp\hemisphere_STEP.stp). This number increases on every re-upload, even after restarting the app.
  • Unwanted Notification: The auto-pop "hemisphere_STEP.stp Uploaded Successfully" message after drag-and-drop needs to be disabled.

Relevant Code

UI Components

<|{file_path}|file_selector|label=Select file|extensions=.csv,.xlsx|drop_message=Drop here to upload|>
<|Upload|button|on_action=upload_data|>

Initialization & Upload Function

file_path = None

def upload_data(state) -> None:
     print(state.file_path)

Solutions

1. Resolve Variable Warning

The warning stems from Taipy failing to resolve the file_path variable in the correct context. Fix this by:

  • Using a state class to encapsulate the variable instead of declaring it globally. This ensures Taipy can track the variable properly.

Example with state class:

from taipy.gui import Gui, State

class AppState:
    def __init__(self):
        self.file_path = None

app_state = AppState()

def upload_data(state: State) -> None:
    print(state.file_path)

gui = Gui(page="""
<|{app_state.file_path}|file_selector|label=Select file|extensions=.csv,.xlsx|drop_message=Drop here to upload|>
<|Upload|button|on_action=upload_data|>
""")

gui.run(state=app_state)

2. Fix Incorrect File Path

The incrementing suffix is Taipy's default behavior to avoid overwriting temporary files. To get the original filename or control the path:

  • Use the on_change event of the file_selector to access metadata about the uploaded file, including the original name.
  • Copy the temporary file to your desired location immediately after upload to use a consistent path.

Example with on_change:

def on_file_selected(state, var_name, value):
    if value:
        original_name = value[0]["name"]
        temp_path = value[0]["path"]
        print(f"Original filename: {original_name}, Temporary path: {temp_path}")
        # Add code here to copy temp_path to your target location

gui = Gui(page="""
<|{file_path}|file_selector|label=Select file|extensions=.csv,.xlsx|drop_message=Drop here to upload|on_change=on_file_selected|>
<|Upload|button|on_action=upload_data|>
""")

3. Disable Upload Success Notification

Turn off the auto-pop message by adding the feedback=False property to the upload button:

<|Upload|button|on_action=upload_data|feedback=False|>

This suppresses the default success feedback while keeping your custom upload logic intact.


内容的提问来源于stack exchange,提问作者Aravind R K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:12:48