最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python快速搭建文件傳輸服務(wù)的方法

 更新時(shí)間:2023年07月11日 10:32:02   作者:小梁說代碼  
這篇文章主要介紹了使用Python快速搭建一個(gè)文件傳輸服務(wù),這樣任何一個(gè)人都能打開瀏覽器把他電腦上的文件傳給我了,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下

當(dāng)我的朋友需要把他電腦上面的文件從他的電腦傳遞到我電腦上的時(shí)候,我只需要啟動(dòng)服務(wù)

啟動(dòng)服務(wù)!

在這里插入圖片描述

他打開web界面

就能把文件傳遞到我電腦上(還能夠?qū)崟r(shí)顯示進(jìn)度)

文件就已經(jīng)在我電腦上的uploads文件夾里面了

項(xiàng)目結(jié)構(gòu)如下

templates 存放前端html文件

? updoad.html 上傳文件的界面

uploads 存放用戶上傳的文件

? 保研準(zhǔn)備資料.zip 剛剛上傳的文件

upload.py 后端服務(wù)文件

當(dāng)你和朋友在同一個(gè)局域網(wǎng)內(nèi),當(dāng)然可以直接根據(jù)主機(jī)的ip遠(yuǎn)程傳輸。當(dāng)你們兩個(gè)不在同一個(gè)網(wǎng)絡(luò)內(nèi)的時(shí)候,可以用frp內(nèi)網(wǎng)穿透將一臺(tái)主機(jī)的ip變成公網(wǎng)ip,也能實(shí)時(shí)進(jìn)行傳輸了。

優(yōu)點(diǎn)

  • 簡單快速,不需要打開qq,微信等軟件傳輸
  • 沒有文件大小限制
  • 進(jìn)度實(shí)時(shí)顯示
  • 局域網(wǎng)也不需要聯(lián)網(wǎng),也非??焖?,

后端服務(wù)搭建

用flask來搭建web服務(wù)

from flask import Flask, render_template, request, jsonify
import os
app = Flask(__name__)
UPLOAD_FOLDER = 'uploads'  # 上傳文件保存的目錄
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
@app.route('/')
def index():
    return render_template('upload.html')
@app.route('/upload', methods=['POST'])
def upload():
    file = request.files['file']
    if file:
        filename = file.filename
        file_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
        file.save(file_path)
        return '文件上傳成功!'
@app.route('/progress', methods=['POST'])
def progress():
    uploaded_bytes = request.form['uploadedBytes']
    total_bytes = request.form['totalBytes']
    progress = int(uploaded_bytes) / int(total_bytes) * 100
    return jsonify(progress=progress)
if __name__ == '__main__':
    app.run(debug=True)

只需要定義三個(gè)接口

  • / : 默認(rèn)訪問html頁面,來供用戶操作
  • /upload :上傳文件的post接口
  • /progress : 實(shí)時(shí)顯示進(jìn)度的post接口

前臺(tái)頁面撰寫

<!doctype html>
<html>
  <head>
    <title>文件上傳</title>
    <script>
      function uploadFile() {
        var fileInput = document.getElementById('file');
        var file = fileInput.files[0];
        var xhr = new XMLHttpRequest();
        xhr.open('POST', '/upload');
        xhr.upload.onprogress = function(event) {
          if (event.lengthComputable) {
            var progress = Math.round((event.loaded / event.total) * 100);
            document.getElementById('progress').innerText = progress + '%';
          }
        };
        xhr.onload = function() {
          if (xhr.status === 200) {
            document.getElementById('progress').innerText = '上傳完成';
          }
        };
        var formData = new FormData();
        formData.append('file', file);
        xhr.send(formData);
      }
      function updateProgress() {
        var xhr = new XMLHttpRequest();
        xhr.open('POST', '/progress');
        xhr.onload = function() {
          if (xhr.status === 200) {
            var progress = JSON.parse(xhr.responseText).progress;
            document.getElementById('progress').innerText = progress + '%';
          }
        };
        xhr.send();
      }
      setInterval(updateProgress, 1000);  // 每秒更新一次進(jìn)度
    </script>
  </head>
  <body>
    <h1>文件上傳</h1>
    <input type="file" id="file">
    <button onclick="uploadFile()">上傳</button>
    <div id="progress"></div>
  </body>
</html>

只需要執(zhí)行兩個(gè)函數(shù)就行

  • onload() : 文件上傳函數(shù),調(diào)用后臺(tái)的 upload 上傳文件接口
  • updateProgress() : 定時(shí)訪問后臺(tái)顯示進(jìn)度的 progress 接口,來獲取文件上傳的進(jìn)度,進(jìn)度計(jì)算后展示百分比給用戶

這樣任何一個(gè)人都能打開瀏覽器把他電腦上的文件傳給我了。

到此這篇關(guān)于使用Python快速搭建一個(gè)文件傳輸服務(wù)的文章就介紹到這了,更多相關(guān)Python搭建文件傳輸服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)socket端口重定向示例

    python實(shí)現(xiàn)socket端口重定向示例

    這篇文章主要介紹了python實(shí)現(xiàn)的socket端口重定向示例,實(shí)現(xiàn)功能是在端口12345開啟文件共享,此時(shí)我也想通過8000端口同時(shí)訪問此共享
    2014-02-02
  • Pytorch?nn.Dropout的用法示例詳解

    Pytorch?nn.Dropout的用法示例詳解

    這篇文章主要介紹了Pytorch?nn.Dropout的用法,本文通過示例代碼介紹的非常詳細(xì),文中補(bǔ)充介紹了torch.nn.dropout和torch.nn.dropout2d的區(qū)別,需要的朋友可以參考下
    2023-04-04
  • python利用dlib獲取人臉的68個(gè)landmark

    python利用dlib獲取人臉的68個(gè)landmark

    這篇文章主要介紹了python利用dlib獲取人臉的68個(gè)landmark,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python實(shí)現(xiàn)按照指定要求逆序輸出一個(gè)數(shù)字的方法

    Python實(shí)現(xiàn)按照指定要求逆序輸出一個(gè)數(shù)字的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)按照指定要求逆序輸出一個(gè)數(shù)字的方法,涉及Python針對字符串的遍歷、判斷、輸出等相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Python要如何實(shí)現(xiàn)列表排序的幾種方法

    Python要如何實(shí)現(xiàn)列表排序的幾種方法

    這篇文章主要介紹了Python要如何實(shí)現(xiàn)列表排序的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • matplotlib之屬性組合包(cycler)的使用

    matplotlib之屬性組合包(cycler)的使用

    這篇文章主要介紹了matplotlib之屬性組合包(cycler)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • python定義類self用法實(shí)例解析

    python定義類self用法實(shí)例解析

    這篇文章主要介紹了python定義類self用法實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Django中ORM表的創(chuàng)建和增刪改查方法示例

    Django中ORM表的創(chuàng)建和增刪改查方法示例

    這篇文章主要給大家介紹了關(guān)于Django中ORM表的創(chuàng)建和增刪改查等基本操作的方法,還給大家分享了django orm常用查詢篩選的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Python使用cookielib模塊操作cookie的實(shí)例教程

    Python使用cookielib模塊操作cookie的實(shí)例教程

    cookielib模塊經(jīng)常被用來和urllib等模塊配合來制作爬蟲或者第三方SNS客戶端等程序,比如這里我們就將舉一個(gè)使用cookie來發(fā)送登錄信息登錄人人網(wǎng)的例子,well,一起來看一下Python使用cookielib模塊操作cookie的實(shí)例教程
    2016-07-07
  • python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型

    python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型

    這篇文章主要介紹了python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論

马山县| 突泉县| 清徐县| 石狮市| 沧州市| 德阳市| 乌鲁木齐市| 万载县| 正宁县| 雷山县| 澎湖县| 太保市| 容城县| 沧源| 阿合奇县| 沂南县| 临朐县| 新昌县| 仙居县| 吴桥县| 乌鲁木齐市| 徐水县| 中西区| 建始县| 五常市| 东乌珠穆沁旗| 宁都县| 萍乡市| 桐城市| 鸡东县| 泾川县| 渑池县| 时尚| 嘉黎县| 临澧县| 遂昌县| 琼结县| 横峰县| 融水| 内乡县| 永德县|