ftp服务器之上传

Alex0425 Alex0425     2022-08-01     400

关键词:

 

 

1.SERVER端

__author__ = alex
#coding:utf-8
import socket
import os
import sys
import json


ip_port = (127.0.0.1,8009)
sk = socket.socket()
sk.bind(ip_port)
sk.listen(5)
# print (os.path.dirname(__file__))
print ("服务端启动...")


while True:
    conn,addr = sk.accept()
    file_info_bytes = conn.recv(1024)
    file_info_str = str(file_info_bytes,"gbk")
    file_info = json.loads(file_info_str)
    client_file_name = file_info.get(file_name)
    client_file_size = file_info.get(file_size)
    print (file_info)

    if os.path.exists(client_file_name):
        print ("文件存在!")
        server_file_size = os.stat(client_file_name).st_size
        print (server_file_size)
        conn.sendall(bytes(str(server_file_size),"gbk"))
        server_file = open(client_file_name,ab)
        while server_file_size < client_file_size:
            try:
                data=conn.recv(1024)
                if not data:
                    raise Exception
            except Exception:
                break

            server_file.write(data)
            server_file_size += len(data)
        server_file.close()
    else:
        print ("文件不存在!")
        server_file_size = 0
        print (server_file_size)
        conn.sendall(bytes(str(server_file_size),"gbk"))
        # has_received = 0
        server_file = open(client_file_name,wb)
        while server_file_size < client_file_size:
            try:
                data=conn.recv(1024)
                if not data:
                    raise Exception
            except Exception:
                break

            server_file.write(data)
            server_file_size += len(data)
        server_file.close()

 

2.CLIENT端

__author__ = alex
#coding:utf-8
import socket
import os
import sys
import json

def process_bar(num,total):
    percent = float(num)/float(total)
    per_int = int(percent*100)
    # print (percent,per_int)
    # print (">"*per_int + "%d%%" %(per_int+1))
    temp = "
%d%%" %(per_int)
    sys.stdout.write(temp)
    sys.stdout.flush()

FILE_PATH = "D:\ftp\Rio.explorer.rmvb"
FILE_NAME = FILE_PATH.split(\)[-1]

ip_port = (127.0.0.1,8009)
sk = socket.socket()
sk.connect(ip_port)
file_info = {}
print ("客户端启动...")

while True:

    if os.path.exists(FILE_PATH):
        file_size = os.stat(FILE_PATH).st_size
        file_info[file_name] = FILE_NAME
        file_info[file_size] = file_size
        file_info_json = json.dumps(file_info)
        sk.sendall(bytes(file_info_json,"gbk"))
        server_file_size = sk.recv(1024)
        server_file_size_str = str(server_file_size,"gbk")
        server_file_size_int = int(server_file_size_str)
        print (server_file_size_str)
        if int(server_file_size_str) != 0:
            inp = input("服务器上存在此文件,是否续传?")
            if inp == y:
                file_obj = open(FILE_PATH,rb)
                file_obj.seek(server_file_size_int)
                # print (file_seek)
                print ("开始续传...")
                while server_file_size_int < file_size:
                    file_read = file_obj.read(1024)
                    sk.sendall(file_read)
                    server_file_size_int += len(file_read)
                    process_bar(server_file_size_int,file_size)
                file_obj.close()
            else:
                break
        else:
            print ("服务器端没有这个文件,要从开头开始发送...")
            file_obj = open(FILE_PATH,rb)
            while server_file_size_int < file_size:
                file_read = file_obj.read(1024)
                sk.sendall(file_read)
                server_file_size_int += len(file_read)
                process_bar(server_file_size_int,file_size)
            file_obj.close()

    else:
        print ("本地文件不存在!")


sk.close()

 

ftp之文件上传

os.path.join() 拼接路径os.path.basename(路径) 获取文件名os.stat(路径).st_size  文件大小函数遇到return结束 查看详情

javajava上传ftp之jdk1.7(代码片段)

查看详情

httpd之curl命令

...TP的POST,PUT等方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上载文件断点续传,http代理服务器管道(proxy 查看详情

2.1.5基础之命令行链接ftpdos中的ftp上传下载文件

...用之自动备份异地备份2.1.5基础之命令行链接ftpdos中的ftp上传下载文件讲解环境VMwareWorkstation12桌面虚拟计算机软件创建虚拟机安装操作系统:http://edu.51cto.com/course/10007.htmlPC1:192.168.1.201远程地址:192.168.100.100:2001windowsservice20 查看详情

2.1.5基础之命令行链接ftpdos中的ftp上传下载文件

...用之自动备份异地备份2.1.5基础之命令行链接ftpdos中的ftp上传下载文件讲解环境VMwareWorkstation12桌面虚拟计算机软件创建虚拟机安装操作系统:http://edu.51cto.com/course/10007.htmlPC1:192.168.1.201远程地址:192.168.100.100:2001windowsservice20 查看详情

ftp部署之pure-ftpd

...e-ftpd通过映射系统用户来进行登录,虚拟用户是不能登录服务器的,但可以登录FTP下载https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.37.tar 查看详情

详解ftp服务之vsftpd(附三种用户安装脚本)

...类型的文件。在企业中大多数情况下,则是用户使用FTP从服务器上下载文件。一个完整的FTP文件传输需要建立两种类型的连接,一种为控制文件传输的命令,称为控制连接;另一种实现真正的文件传输,称为数据连接控制连接:... 查看详情

批量ftp上传工具,推荐3款免费的ftp服务器软件,批量ftp上传工具

第一款:iis7服务器管理软件iis7远程桌面管理软件,是一款绿色小巧,功能实用的FTP工具软件,其界面简洁,操作方便,它支持FTP批量上传下载,它可以同时连接多台ftp服务器进行文件传输工作,还可以在线解压缩文件,支持文... 查看详情

“打开ftp服务器上的文件夹时发生错误,请检查是不是有权限访问该文件夹”怎么解决

服务器的FTP搭建好了,但是从我的电脑进入FTP时会出现这个,已把服务器的IE设置里的“使用被动FTP”的勾去掉了还是不行,请大神棒我解答一下怎么弄在使用ie6访问ftp服务器时,若在ftp上传行为中,路径中有中文字符,ftp服务... 查看详情

端口漏洞之21(ftp)(代码片段)

...经常遇到两个概念:“下载”(Download)和“上传”(Upload)。“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说&#... 查看详情

ftp上传工具中文,3款最好用的ftp上传工具中文

第一款:iis7服务器管理软件iis7远程桌面管理软件,是一款绿色小巧,功能实用的FTP工具软件,其界面简洁,操作方便,它支持FTP批量上传下载,它可以同时连接多台ftp服务器进行文件传输工作,还可以在线解压缩文件,支持文... 查看详情

ftp上传下载文件

上传文件:<?php/***ftp上传文件*/$ftp_server=‘localhost‘;//服务器$ftp_port=‘21‘;//端口$ftp_user_name=‘ftp‘;//用户名$ftp_user_pass=‘zxcasdqwe123‘;//密码$ftp_put_dir=‘/root‘;//上传目录$ftp_conn_id=ftp_connect($ftp_server,$f 查看详情

php使用ftp上传文件到服务器(实战篇)

...定是避免不了的,平常我们的程序和上传的文件都在一个服务器上,我们也可以使用第三方sdk上传文件,但是文件在第三方服务器上。现在我们使用PHP的ftp功能把文件上传到我们自己的服务器,我使用的linux的服务器,首先确保... 查看详情

ftp上传文件

...he的commons-net进行上传操作,所以要下载commons-net的jar包,服务器采用centeroslinux操作系统,运行nginx服务器,安装使用yum-yinstallvsftp安装vsftp服务,并创建ftp用户。关于vsftp与nginx的安装,百度即可。 以下是使用代码的方式上传... 查看详情

如何将文件上传到 FTP 服务器?

】如何将文件上传到FTP服务器?【英文标题】:HowdoyouuploadafiletoanFTPserver?【发布时间】:2011-09-2512:58:14【问题描述】:我创建了一个函数来从我有权访问的FTP服务器下载文件。如何将文件上传回FTP服务器?下面是我使用的download_... 查看详情

Iphone 上传字符串到 FTP 服务器

】Iphone上传字符串到FTP服务器【英文标题】:IphoneUploadStringtoFTPserver【发布时间】:2012-04-0422:15:08【问题描述】:我需要简单地将一个字符串作为txt上传到我的ftp服务器,我搜索得很好,但没有任何效果。有没有简单地将字符串... 查看详情

中文版ftp上传工具,中文版ftp上传工具使用教程!

IIS7服务器管理工具能够作为FTP的客户端,进行FTP的命令操作,可在客户端,下载,安装FTP软件! 同时,它也可以作为VNC的客户端,进行VNC的命令操作!它能够批量连接Windows和Linux系统下的服务器和VPS,并能够实时监测他们... 查看详情

ftp不能使用命令行上传

...CIImodedataconnectionfor……问题能解决,另加分!所上传的FTP服务器为windows2003的IIS构架,并且windows防火墙已经关闭。我想使用自动方式上传指定的文件,试过很多次都要提示以上两个错误。执行的命令和报错信息如下图:上传具体... 查看详情