首页 > 编程语言 >Python简易HTTP文件服务器

Python简易HTTP文件服务器

时间:2023-10-07 11:55:17浏览次数:35  
标签:files __ HTTP Python filename uploads file 服务器 os

我超怕的 - HTTP simple file server use Python - https://www.cnblogs.com/iAmSoScArEd/p/17745959.html

How to use

安装依赖:pip3 install flask
保存到文本simple_file_server.py后运行:python3 simple_file_server.py
浏览器访问:http://ip:9999

Code

from flask import Flask, request, send_file, render_template, jsonify
import os

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        files = request.files.getlist('file[]')
        uploaded_files = []
        for file in files:
            if file:
                filename = file.filename
                file.save(os.path.join('uploads', filename))
                uploaded_files.append(filename)
        return ', '.join(uploaded_files) + ' uploaded successfully.'
    return '''
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>File Upload</title>
</head>
<body>
    <h1>File Upload</h1>
    <form action="/" method="post" enctype="multipart/form-data">
        <input type="file" name="file[]" multiple>
        <input type="submit" value="Upload">
    </form>
</body>
</html>
    '''

@app.route('/list', methods=['GET'])
def list_files():
    files = os.listdir('uploads')
    return jsonify({'files': files})

@app.route('/uploads/<filename>')
def get_file(filename):
    return send_file(os.path.join('uploads', filename), as_attachment=True)

if __name__ == '__main__':
    if not os.path.exists('uploads'):
        os.makedirs('uploads')
    app.run(debug=True,host="0.0.0.0",port=9999)

标签:files,__,HTTP,Python,filename,uploads,file,服务器,os
From: https://www.cnblogs.com/iAmSoScArEd/p/17745959.html

相关文章

  • python TCP Server
    pythonTCPServerhttps://blog.csdn.net/weixin_45707610/article/details/131511896 下面的代码,要先关闭防火墙,然后再启动fromsocketserverimportBaseRequestHandler,TCPServerclassEchoHandler(BaseRequestHandler):defhandle(self):print('Got......
  • python+playwright 简单使用
    启动浏览器并打开百度页面安装后,您可以在Python脚本中使用Playwright,并启动3种浏览器中的任何一种(chromium,firefox和webkit)。playwright执行默认运行的浏览器是chromium1、同步方式启动浏览器2、异步方式启动浏览器 ......
  • 解读亚马逊云服务器 EC2 预留实例与按需实例的区别,及其在成本节约的优势
    随着云计算不断改变企业的运营方式,优化成本已成为首要任务。利用AmazonEC2预留实例是实现云端成本节约最有效的方法之一。以下将探讨什么是AmazonEC2预留实例,它与按需实例的区别,以及它在成本节约和灵活性方面提供的好处。在深入了解AmazonEC2预留实例的细节之前,需......
  • python+playwright 环境准备
    前言2020年微软开源一个UI自动化测试工具Playwright,与selenium一样,入门简单,支持多语言,所以playwright开始被更多人注意到了,它甚至比selenium更好用更强大。playwright的优势跨浏览器和平台跨浏览器。Playwright支持所有现代渲染引擎,包括Chromium、WebKit和Firefox。......
  • DTU,RTU,边缘网关,串口服务器,IO控制器 等等的区别
    DTU,RTU,边缘网关,串口服务器,IO控制器  等等的区别 工业DTUData Transfer Unit数据传输单元,又名“数据传输单元、集中器、转换器、转发器”等,通常就是路由器、网关,支持多种工业协议如mqtt\iec101\modbus等协议有线输入,再用有线或无线向远端传送。当前联网系统,所有其他设备都......
  • Python TCP socket
    Python TCPsocketsocket.listen(n)简单来说,这里的nt表示socket的”排队个数“一般情况下,一个进程只有一个主线程(也就是单线程),那么socket允许的最大连接数为:n+1如果服务器是多线程,比如上面的代码例子是开了2个线程,那么socket允许的最大连接数就是:n+2换句话说:排队的......
  • 【python笔记】虚拟环境
    1.虚拟环境的建立python-mvenv<虚拟环境名>#例如:python-mvenvmy_venv2.虚拟环境的激活与去激活激活cd到虚拟环境文件夹下的Scripts,在终端执行activate去激活cd到虚拟环境文件夹下的Scripts,在终端执行deactivate.bat3.在虚拟环境中下载依赖python-mpipin......
  • Mojo帮助Python 的性能提升了近 250 倍
    导读AydynTairov是一名开源作者,也是Meta前工程师,他此前将GitHub上火热的纯C语言实现的llama2.c项目移植到了Python——llama2.py。近期 Mojo编程语言正式开放下载,并且声称比Python快68000倍。于是 AydynTairov马不停蹄地就开始将 llama2.py 移植到......
  • 根据以下代码所生成的数据 请使用python 机器学习 研究不同宽度,厚度,重量,车间温度,
    #对分类变量进行独热编码data=pd.get_dummies(data,columns=['Annealing_Type','Cooling_Type'])#划分训练集和测试集fromsklearn.model_selectionimporttrain_test_splitX=data.drop(['Material_ID','Measurement_Time','Tempera......
  • 阿里云服务器经济型e系列和u1有什么区别?性能差异
    阿里云服务器经济型e实例和云服务器u1有什么区别?同CPU内存配置下云服务器u1性能更强,u1实例价格也要更贵一些。经济型e实例属于共享型云服务器,不同实例vCPU会争抢物理CPU资源,并导致高负载时计算性能波动不稳定,而云服务器u1是企业级实例,实例间无CPU资源争抢,实例计算性能稳定且有严格......