Python 文件共享服务器
2021/8/6 1:37:23
本文主要是介绍Python 文件共享服务器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
基于Flask的Web文件共享
标签:Python, Flask
之前用Java写过一个文件系统,很简陋,一次只能上传一个文件且无回显,这次重新用Python写了一个,因为只需要一个很小的服务,所以就选用Flask了
效果如图:
使用说明:
注:服务器基于Flask,和Python,确保有相应环境
安装flask命令: pip install flask
若是整个打包下载的,解压后路径下有个运行脚本(运行.bat)双击运行就行了。文件共享区域为此运行脚本所在文件夹。也就是把文件放入此文件夹,就可以被找到和下载,同样的任意上传的文件也会被放到该目录下。
上传:拖到指定区域或者浏览本地选择上传均可
下载:点击文件即可下载
打包下载
链接:https://pan.baidu.com/s/1MDX8iLjjaOSHqDtWoRMOZg
提取码:kkkk
源代码
代码量比较少,就没传github了
app.py
from flask import Flask, render_template, send_from_directory, request import os import socket from gevent import pywsgi app = Flask(__name__) @app.route('/') def index(): try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('8.8.8.8', 80)) ip = s.getsockname()[0] finally: s.close() path = os.getcwd() files = list(os.walk(path))[0][2] files.remove('运行.bat') return render_template('index.html', files=files, ip=ip) @app.route('/upload', methods=['POST']) def upload(): f = request.files['files'] f.save(os.path.join(os.getcwd(), f.filename)) return '{}' @app.route('/download/<filename>/') def download(filename): return send_from_directory(os.path.pardir, filename, as_attachment=True) if __name__ == '__main__': try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('8.8.8.8', 80)) ip = s.getsockname()[0] finally: s.close() print('复制' + ip + ':5000' + '到浏览器打开') server = pywsgi.WSGIServer(('0.0.0.0', 5000), app) server.serve_forever()
index.html
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>文件共享</title> <link rel="Shortcut Icon" href="/static/img/logo.ico" type="image/x-icon" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="/static/css/bootstrap.min.css"> <script src="/static/js/jquery.min.js"></script> <script src="/static/js/bootstrap.min.js"></script> <script src="/static/js/fileinput.min.js"></script> <link rel="stylesheet" href="/static/css/fileinput.min.css"> <script src="/static/js/zh.js"></script> </head> <body> <div class="container"> <h2>在同一局域网下输入{{ip}}:5000即可访问</h2> <br> <div class="list-group"> {% for file in files %} <a href="{{ url_for('download',filename=file)}}" class="list-group-item list-group-item-secondary">{{ file }}</a> {% endfor %} </div> <br> <div class="upload-wrap"> <input id="upload" type="file" multiple="multiple" name="files" /> </div> <script> $("#upload").fileinput({ language: 'zh', // 设置语言 uploadUrl: "{{url_for('upload')}}", // 上传地址 uploadAsync: true, // 默认异步上传 showUpload: true, // 显示上传按钮 showRemove: true, // 显示移除按钮 showPreview: true, // 显示预览 showCaption: true, // 显示标题 browseClass: "btn btn-primary", // 按钮样式 dropZoneEnabled: true, // 显示拖拽区域 maxFileCount: 30, // 允许同时上传的最大文件个数 enctype: 'multipart/form-data', validateInitialCount: true, previewFileIcon: "", msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!", }).on("fileuploaded", function (event, data, previewId, index) { window.alert('文件上传成功'); }); </script> </div> </body> </html>
待添加功能
- 支持手机扫二维码访问
- 支持删除功能
- 支持浏览下载子目录下的文件
这篇关于Python 文件共享服务器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享