Upload file handling
Browse files
app.py
CHANGED
@@ -21,6 +21,30 @@ def load_data(query_params, model_3d, image_slider):
|
|
21 |
model_url = "models/beeuty_545jlbh1_300dpi.glb"
|
22 |
return model_url, slider_images
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
gr.set_static_paths(paths=["images/", "models/", "assets/"])
|
25 |
with gr.Blocks(css_paths="style_20250314.css", title="3D viewer", theme='Surn/Beeuty',delete_cache=(21600,86400)) as viewer3d:
|
26 |
gr.Markdown("# 3D Model Viewer")
|
@@ -57,6 +81,13 @@ with gr.Blocks(css_paths="style_20250314.css", title="3D viewer", theme='Surn/Be
|
|
57 |
}"""
|
58 |
)
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
if __name__ == "__main__":
|
61 |
viewer3d.launch(
|
62 |
allowed_paths=["assets", "assets/", "./assets", "images/", "./images", 'e:/TMP', 'models/'],
|
|
|
21 |
model_url = "models/beeuty_545jlbh1_300dpi.glb"
|
22 |
return model_url, slider_images
|
23 |
|
24 |
+
def process_upload(files):
|
25 |
+
"""
|
26 |
+
Process uploaded files and assign them to the
|
27 |
+
appropriate component based on file extension.
|
28 |
+
Files with extensions in [".glb", ".gltf", ".obj", ".ply"] are
|
29 |
+
sent to the Model3D component.
|
30 |
+
Files with extensions in [".png", ".jpg", ".jpeg"] are
|
31 |
+
sent to the ImageSlider component.
|
32 |
+
"""
|
33 |
+
model_file = None
|
34 |
+
image_files = []
|
35 |
+
# ensure files is a list
|
36 |
+
if not isinstance(files, list):
|
37 |
+
files = [files]
|
38 |
+
for f in files:
|
39 |
+
# f can be a file path (string) or an object with attribute `name`
|
40 |
+
file_name = f.name if hasattr(f, "name") else f
|
41 |
+
ext = os.path.splitext(file_name)[1].lower()
|
42 |
+
if ext in [".glb", ".gltf", ".obj", ".ply"]:
|
43 |
+
model_file = file_name
|
44 |
+
elif ext in [".png", ".jpg", ".jpeg"]:
|
45 |
+
image_files.append(file_name)
|
46 |
+
return model_file, image_files
|
47 |
+
|
48 |
gr.set_static_paths(paths=["images/", "models/", "assets/"])
|
49 |
with gr.Blocks(css_paths="style_20250314.css", title="3D viewer", theme='Surn/Beeuty',delete_cache=(21600,86400)) as viewer3d:
|
50 |
gr.Markdown("# 3D Model Viewer")
|
|
|
81 |
}"""
|
82 |
)
|
83 |
|
84 |
+
# Process uploaded files to update the Model3D or ImageSlider component.
|
85 |
+
upload_btn.upload(
|
86 |
+
process_upload,
|
87 |
+
inputs=upload_btn,
|
88 |
+
outputs=[model_3d, image_slider]
|
89 |
+
)
|
90 |
+
|
91 |
if __name__ == "__main__":
|
92 |
viewer3d.launch(
|
93 |
allowed_paths=["assets", "assets/", "./assets", "images/", "./images", 'e:/TMP', 'models/'],
|