server.py

#!/usr/bin/env python
# -*- coding:utf- -*-
import SocketServer
import os

class MySocketServer(SocketServer.BaseRequestHandler):

    def handle(self):
        filename_dir = '/home/feng/feng'
        conn = self.request
        data = conn.recv()
        filename,filename_size = data.strip().split('|')

        print filename,filename_size

        recv_size = 

        file_dir=os.path.join(filename_dir,filename)

        f = open(file_dir,'w+')

        while True:
            if int(filename_size) != recv_size :
                data = conn.recv()
                recv_size += len(data)
                print int(filename_size),recv_size
                f.write(data)
            else:
                break
            # else:
            #     data = conn.recv(int(filename_size) - recv_size)
            #     print int(filename_size) - recv_size
            #     break
        print 'upload successed.......'

if  __name__ == '__main__':
    ip_port = ()
    server = SocketServer.ThreadingTCPServer(ip_port,MySocketServer)
    server.serve_forever()

=======================================
client.py
#!/usr/bin/env python
# -*- coding:utf- -*-
import socket
import os

client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip_port = ()
client.connect(ip_port)

while True:
    filepath = raw_input('请输入方法和上传路径:/root/1.txt:  ')
    filename_size = os.stat(filepath).st_size
    filename = os.path.basename(filepath)

    print '#####################'
    print filepath,filename_size
    print '#####################'

    client.send(filename + '|' + str(filename_size))
    send_size = 

    f = open(filepath,'r')

    Flag = True
    while Flag:
        if filename_size != send_size:
            data = f.read()
            send_size += len(data)
            client.send(data)
        else:
            Flag=False
    f.close()
    client.close()

python 上传下载文件的更多相关文章

  1. rz和sz上传下载文件工具lrzsz

    ######################### rz和sz上传下载文件工具lrzsz ####################################################### ...

  2. linux上很方便的上传下载文件工具rz和sz

    linux上很方便的上传下载文件工具rz和sz(本文适合linux入门的朋友) ##########################################################&l ...

  3. shell通过ftp实现上传/下载文件

    直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...

  4. autoIT 自动化上传/下载文件图文详解【python selenium】

    情景: 在用selenium进行web页面自动化时,时不时会遇到上传附件的情况,常见的情况就是一个上传按钮,点击后弹出windows窗口,选择文件后上传,如下图1所示 图1 这种情况超出了seleni ...

  5. Linux上传下载文件快捷命令

    远程链接Linux(如SecrueCRT),要上传文件很下载文件到Linux服务器,只需要使用sz或者rz命令即可快速下载和上传文件了. 使用方法: 1.首先确保Linux服务器系统中安装了lrzsz ...

  6. Javaweb学习笔记——上传下载文件

    一.前言 在Javaweb中,上传下载是经常用到的功能,对于文件上传,浏览器在上传的过程中是以流的过程将文件传给服务器,一般都是使用commons-fileupload这个包实现上传功能,因为comm ...

  7. 利用scp 远程上传下载文件/文件夹和ssh远程执行命令

    利用scp传输文件 1.从服务器下载文件scp username@servername:/path/filename /tmp/local_destination例如scp codinglog@192 ...

  8. PHP使用CURL上传|下载文件

    CURL下载文件 /** * @param string $img_url 下载文件地址 * @param string $save_path 下载文件保存目录 * @param string $fi ...

  9. Linux服务器通过rz/sz轻松上传下载文件

    Linux服务器通过命令行远程访问时,上传文件还需要ftp所以不太方便,可以使用rz这个小工具来上传不太大的文件,方法如下: 输入rz,如果提示命令不存在,证明还没有安装,以CentOS为例,安装命令 ...

随机推荐

  1. 初学RunLoop

    RunLoop 运行循环,跑圈 可以看出每条线程都有一个与之对应的RunLoop对象 主线程的RunLoop已经自动创建好了,子线程的RunLoop需要主动创建. 基本作用:保持程序的持续运行 处理A ...

  2. C#字符串的方法

    static void Main(string[] args) { StrMethod(); } public static void StrMethod() { string myString = ...

  3. 【转】easyui $.message.alert 点击右上角的关闭按钮时,不执行定义的回调函数

    今天發現這個問題 easyui  $.message.alert  点击右上角的关闭按钮时,不执行定义的回调函数

  4. javascript学习5

    JavaScript Array(数组)对象 数组对象的作用是:使用单独的变量名来存储一系列的值. 实例 创建数组 创建数组,为其赋值,然后输出这些值. For...In 声明 使用 for...in ...

  5. 实现在ios开发中的App滑动封面 UIScrollView

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. _scrol ...

  6. TP框架自动加载优先级

    $map = array('Think\Log'=>THINK_PATH.'Think\Log.php','Org\Util\Array'=>THINK_PATH.'Org\Util\Ar ...

  7. WPF 画刷应用

    纯色: SolidColorBrush brush = new SolidColorBrush(Colors.White); window1.Background = brush; 渐变色: Line ...

  8. LintCode "Partition Array by Odd and Even"

    One pass in-place solution: all swaps. class Solution { public: /** * @param nums: a vector of integ ...

  9. DBA_Oracle Erp重启Database/Application/Concurrent/Apache(案例)

    2014-12-27 Created By BaoXinjian

  10. 【转载】input 中 type='text' 的提交问题

    原文链接:http://www.nowamagic.net/html/html_AboutInputSummit.php 有时候我们希望回车键敲在文本框(input element)里来提交表单(fo ...