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

[复制链接]
查看5176 | 回复10 | 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

回复

使用道具 举报

aa627816231 | 2021-11-25 22:13:05 | 显示全部楼层
6666膜拜
回复

使用道具 举报

肉肉爱破解 | 2021-11-26 03:09:45 | 显示全部楼层
感觉好厉害,就是看不懂
回复

使用道具 举报

2523133110 | 2021-11-26 12:40:57 | 显示全部楼层
楼主说的对



                                            藏起来的小尾巴,不让你看!  
    回复

    使用道具 举报

    风雷 | 2021-11-26 14:27:53 | 显示全部楼层
      66666
    回复

    使用道具 举报

    zjcyjj | 2021-11-28 04:47:01 | 显示全部楼层
    懒人懒人懒人懒人懒人懒人懒人懒人懒人懒人
    回复

    使用道具 举报

    tmv587 | 2021-11-28 11:59:24 | 显示全部楼层
    楼主说的对
    回复

    使用道具 举报

    yinjiantuan | 2022-2-4 16:41:55 | 显示全部楼层
    太厉害了 值得学习
    回复

    使用道具 举报

    cookies222 | 2022-4-14 01:16:09 | 显示全部楼层
    本帖最后由 cookies222 于 2022-4-14 01:31 编辑

    牛逼!!!!!!!!!!!!!
    回复

    使用道具 举报

    lyxqge | 2022-4-16 00:37:59 | 显示全部楼层

    太厉害了 值得学习
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则