Spaces:
Runtime error
Runtime error
| # import streamlit as st | |
| # import os | |
| # import shutil | |
| # def main(): | |
| # st.title("File Explorer") | |
| # # File browsing | |
| # st.header("Browse Files") | |
| # current_dir = st.text_input("Current Directory", value=os.getcwd()) | |
| # try: | |
| # files = os.listdir(current_dir) | |
| # selected_file = st.selectbox("Select a file/folder", files) | |
| # full_path = os.path.join(current_dir, selected_file) | |
| # if selected_file: | |
| # if os.path.isfile(full_path): | |
| # st.write(f"You selected file: {selected_file}") | |
| # # Download | |
| # with open(full_path, "rb") as f: | |
| # st.download_button("Download", f, file_name=selected_file) | |
| # # Read | |
| # if selected_file.endswith((".txt",".py",".md",".csv")): | |
| # try: | |
| # with open(full_path,"r") as f_read: | |
| # content = f_read.read() | |
| # st.text_area("File content", content, height=300) | |
| # except UnicodeDecodeError: | |
| # st.write("Cannot display binary file content.") | |
| # elif os.path.isdir(full_path): | |
| # st.write(f"You selected directory: {selected_file}") | |
| # except FileNotFoundError: | |
| # st.error("Invalid directory path.") | |
| # except PermissionError: | |
| # st.error("Permission denied to access this directory.") | |
| # except OSError as e: | |
| # st.error(f"OS error: {e}") | |
| # # File Uploading | |
| # st.header("Upload Files") | |
| # uploaded_files = st.file_uploader("Choose files to upload", accept_multiple_files=True) | |
| # upload_dir = st.text_input("Upload Directory", value=os.getcwd()) | |
| # if uploaded_files: | |
| # for uploaded_file in uploaded_files: | |
| # try: | |
| # with open(os.path.join(upload_dir, uploaded_file.name), "wb") as f: | |
| # f.write(uploaded_file.getbuffer()) | |
| # st.success(f"Saved File: {uploaded_file.name} to {upload_dir}") | |
| # except Exception as e: | |
| # st.error(f"Error saving file: {e}") | |
| # if __name__ == "__main__": | |
| # main() | |
| from flask import Flask, url_for, redirect | |
| from flask import request as req | |
| from flask_cors import CORS | |
| app = Flask(__name__) | |
| CORS(app) | |
| from werkzeug.utils import secure_filename | |
| import os | |
| from PIL import Image | |
| app.config['UPLOAD_FOLDER'] = "static" | |
| from pyngrok import ngrok | |
| # Open a HTTP tunnel on the default port 80 | |
| # <NgrokTunnel: "https://<public_sub>.ngrok.io" -> "http://localhost:80"> | |
| http_tunnel = ngrok.connect("1337", "http") | |
| print(http_tunnel) | |
| def index(): | |
| # If a post method then handle file upload | |
| if req.method == 'POST': | |
| if 'file' not in req.files: | |
| return redirect('/') | |
| file = req.files['file'] | |
| if file : | |
| filename = secure_filename(file.filename) | |
| file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) | |
| if ("camera" in file.filename or "capture" in file.filename or "IMG" in file.filename or "Screenshot" in file.filename) : | |
| img=Image.open(f"static/{filename}") | |
| img.thumbnail((512, 512),Image.Resampling.LANCZOS) | |
| img.save(f"static/{filename}") | |
| return filename | |
| # Get Files in the directory and create list items to be displayed to the user | |
| file_list = '' | |
| for f in os.listdir(app.config['UPLOAD_FOLDER']): | |
| # Create link html | |
| link = url_for("static", filename=f) | |
| file_list = file_list + '<li><a href="%s">%s</a></li>' % (link, f) | |
| # Format return HTML - allow file upload and list all available files | |
| return_html = ''' | |
| <!doctype html> | |
| <title>Upload File</title> | |
| <h1>Upload File</h1> | |
| <form method=post enctype=multipart/form-data> | |
| <input type=file name=file><br> | |
| <input type=submit value=Upload> | |
| </form> | |
| <hr> | |
| <h1>Files</h1> | |
| <ol>%s</ol> | |
| ''' % file_list | |
| return return_html | |
| if __name__ == '__main__': | |
| config = { | |
| 'host': 'localhost', | |
| 'port': 1337, | |
| 'debug': True, | |
| } | |
| app.run(**config) |