发帖
充值
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
首页源码分享使用Python_Flask框架_实现懒人精灵FTP功能

使用Python_Flask框架_实现懒人精灵FTP功能

10
回复
8226
查看
[ 复制链接 ]
已绑定手机

46

主题

118

回帖

2831

积分

版主

积分
2831
2021-11-25 22:07:42 显示全部楼层 阅读模式
本帖最后由 Aitlo 于 2021-11-25 22:11 编辑

通过Python,使用Flask框架实现上传,下载,遍历文件.编写一个简单的FTP功能.

懒人精灵FTP.py 文件源码:
  1. from flask import Flask, request, make_response,send_from_directory
  2. import json
  3. import os
  4. app = Flask(__name__)

  5. @app.route("/server/dir",methods=["GET"])
  6. def get_server_dir():
  7.     # 获取服务端文件夹文件路径
  8.     server_file_dict = {}
  9.     server_path = os.path.dirname(__file__)
  10.     if os.path.isdir(server_path):
  11.         for root,dirs,files in os.walk(server_path):
  12.             for index,file in enumerate(files,1):
  13.                 # print(index,file)
  14.                 server_file_dict[index] = file

  15.     return json.dumps(server_file_dict,ensure_ascii=False)

  16. @app.route("/download/<filename>", methods=['GET'])
  17. def download_file(filename):
  18.     # 需要知道2个参数, 第1个参数是本地目录的path, 第2个参数是文件名(带扩展名)
  19.     directory = os.getcwd()  # 假设在当前目录
  20.     response = make_response(send_from_directory(directory, filename, as_attachment=True))
  21.     response.headers["Content-Disposition"] = "attachment; filename={}".format(filename.encode().decode('latin-1'))
  22.     return response


  23. @app.route('/create/upload', methods=["GET", "POST"])
  24. def create_upload():
  25.     # 接收上传文件并保存
  26.     new_dict = {}
  27.     print(request.files)
  28.     file = request.files.get("file")

  29.     file.save(file.filename)
  30.     new_dict["userip"] = request.remote_addr
  31.     new_dict["filestate"] = True
  32.     new_dict[file.filename]="上传成功!"
  33.     return str(new_dict)

  34. if __name__ == '__main__':
  35.     # app.run()

  36.     app.run(host="0.0.0.0", port="5000", debug=True)
复制代码
懒人精灵lua文件的源码:
  1. function UploadFile(url,filepath)
  2.     -- 上传文件至服务端
  3.     -- UploadFile(服务器的链接地址,上传文件的路径)
  4.     local ret = uploadFile(url,filepath)
  5.     print(ret)
  6.    
  7. end
  8. -- 云端上传服务器的链接地址
  9. local url = "http://192.168.1.7:5000/create/upload"
  10. -- 本地需上传文件的路径
  11. local filepath = "/mnt/sdcard/test.txt"

  12. --UploadFile(url,filepath)


  13. function DownloadFile(url,filename,savefile)
  14.     -- 访问服务端 下载文件保存本地
  15.     -- DownloadFile(服务器的链接地址,下载的文件名,保存的文件名)
  16.     -- 本地创建一个懒人精灵下载的文件夹
  17.     local path = "/mnt/sdcard/懒人精灵下载"
  18.     if fileExist(path) == false then
  19.         
  20.         print(mkdir(path))
  21.         
  22.     end
  23.    
  24.     local ret = downloadFile(string.format("%s/%s",url,filename),string.format("%s/%s",path,savefile))
  25.     if ret == 0 then
  26.         print("下载成功,文件已保存至:",string.format("%s/%s",path,savefile))
  27.     else
  28.         print("下载失败!")
  29.     end
  30. end

  31. local url = "http://192.168.1.7:5000/download"
  32. local filename = "client.py"
  33. local savefile = "client.py"
  34. DownloadFile(url,filename,savefile)




  35. function GetServerFlieName(url)
  36.     -- 遍历服务端存储文件名
  37.     -- GetServerFlieName(服务器的链接地址)
  38.     local ret,code = httpGet(url)
  39.     if ret ~= nil then
  40.         fileTab = jsonLib.decode(ret)
  41.         print("服务器存储的文件:")
  42.         for k,v in pairs(fileTab) do
  43.             print(k,v)
  44.         end
  45.     end
  46.    
  47.    
  48. end
  49. local url = "http://192.168.1.7:5000/server/dir"
  50. GetServerFlieName(url)
复制代码
运行结果图片:
3.png
2.png

使用道具
举报

1

主题

37

回帖

86

积分

注册会员

积分
86
6666膜拜
回复
使用道具
举报
已绑定手机

0

主题

33

回帖

115

积分

注册会员

积分
115
感觉好厉害,就是看不懂
回复
使用道具
举报

2

主题

19

回帖

95

积分

注册会员

积分
95
楼主说的对



                                            藏起来的小尾巴,不让你看!  
    回复
    使用道具
    举报

    7

    主题

    49

    回帖

    398

    积分

    版主

    积分
    398
      66666
    回复
    使用道具
    举报

    4

    主题

    17

    回帖

    77

    积分

    注册会员

    积分
    77
    懒人懒人懒人懒人懒人懒人懒人懒人懒人懒人
    回复
    使用道具
    举报

    0

    主题

    24

    回帖

    167

    积分

    注册会员

    积分
    167
    楼主说的对
    回复
    使用道具
    举报

    0

    主题

    13

    回帖

    55

    积分

    注册会员

    积分
    55
    太厉害了 值得学习
    回复
    使用道具
    举报
    已绑定手机

    1

    主题

    2

    回帖

    39

    积分

    新手上路

    积分
    39
    本帖最后由 cookies222 于 2022-4-14 01:31 编辑

    牛逼!!!!!!!!!!!!!
    回复
    使用道具
    举报

    0

    主题

    31

    回帖

    84

    积分

    注册会员

    积分
    84

    太厉害了 值得学习
    回复
    使用道具
    举报
    12下一页
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则