当前位置:首页 » 文件传输 » python实现大文件分片上传
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

python实现大文件分片上传

发布时间: 2022-04-25 00:21:41

⑴ 请问 如何用python写一个带文件上传功能的界面

#!/usr/bin/env python
import cgi, os
import cgitb; cgitb.enable()

try: # Windows needs stdio set for binary mode.
import msvcrt
msvcrt.setmode (0, os.O_BINARY) # stdin = 0
msvcrt.setmode (1, os.O_BINARY) # stdout = 1
except ImportError:
pass

form = cgi.FieldStorage()

# Generator to buffer file chunks
def fbuffer(f, chunk_size=10000):
while True:
chunk = f.read(chunk_size)
if not chunk: break
yield chunk

# A nested FieldStorage instance holds the file
fileitem = form['file']

# Test if the file was uploaded
if fileitem.filename:

# strip leading path from file name to avoid directory traversal attacks
fn = os.path.basename(fileitem.filename)
f = open('files/' + fn, 'wb', 10000)

# Read the file in chunks
for chunk in fbuffer(fileitem.file):
f.write(chunk)
f.close()
message = 'The file "' + fn + '" was uploaded successfully'

else:
message = 'No file was uploaded'

print """\
Content-Type: text/html\n
<html><body>
<p>%s</p>
</body></html>
""" % (message,)

⑵ Python的文件上传

Python中使用GET方法实现上传文件,下面就是用Get上传文件的例子,client用来发Get请求,server用来收请求。

请求端代码:

importrequests#需要安装requests
withopen('test.txt','rb')asf:
requests.get('http://服务器IP地址:端口',data=f)

服务端代码:

varhttp=require('http');
varfs=require('fs');
varserver=http.createServer(function(req,res){
//console.log(req);
varrecData="";
req.on('data',function(data){
recData+=data;
})
req.on('end',function(data){
recData+=data;
fs.writeFile('recData.txt',recData,function(err){
console.log('filereceived');
})
})
res.end('hello');
})
server.listen(端口);

⑶ python哪些web框架适合用来做大文件上传服务

这个果断要用tornado啊。html5的 Filesystem Api,可以读取一个本地文件为blob,然后可以按任意字节切分slice。这不就是断点上传么。Google Gears时代我就实现了个多线程上传的。python的socket手写http协议。很好玩。


转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

⑷ 在Windows系统中,如何python脚本实现分割合并大二进制文件,方便上传

你可以看看numpy.fromfile()方法,也可以自己open一个文件,再read()一定字节实现。
前者是把整个原文件读入内存成为数组,再选择数组的一部分写入文件(numpy.tofile())。后者是从原文件中读入一些字节,再把这些字节write到新文件中。
因此,方法并不难,基本上就是一个过程。
特别要注意的是,二进制文件是不存储任何格式信息的,所以,一定要弄清楚这个文件是如何产生的,因此,在分割文件时不要把一个数所对应的字节给分开。比如二进制文件中是32bit数据,那么,就要4字节为一个单位,不能在分割时分出一个1字节或2字节来,否则数据就错了。

⑸ 如何通过python上传文件到百度云盘

直接在系统命令行中输入bypy命令,将会列出所有的命令的使用信息。
授权
在命令行中输入bypy info,将会出现一个提示,按照提示完成授权,完成了授权Python代码才能和你的网络云盘进行通信。
常用命令
新建文件夹,在网络网盘中新建一个文件夹:
mkdir(remotepath='bypy'),将会新建一个bypy文件夹,如图:
新建的文件夹
上传文件:
upload(localpath='c:\\new\\timg.jpg',remotepath='bypy',onp='new')
参数说明:
localpath:本地的目录,如果省略则为当前目录。
remotepath:云盘目录
onp:当出现重复文件时如何处理,默认是overwrite,安全起见可以更改为new
Python 代码实例
from bypy import ByPy
bp = ByPy()
bp.mkdir(remotepath='bypy')
bp.upload(localpath='c:\\new\\timg.jpg',remotepath='bypy',onp='new')
print('上传完毕!')
注意:
中文文件名可能会出现问题,最好使用英文文件名。

⑹ python ftplib 传输文件大小的文件,如何传输较大文件

没有矛盾啊。只要你不一口气将所有文件都加载到内存里去。使用FTP协议,发送大文件不成问题。

FTP协议是个很简单的协议。你可以仔细看一下原理。然后再配合python的ftplib看。你会发现那些cmd就是FTP的命令。

⑺ 有大神知道怎么使用python 往ftp服务器上连续上传下载多张图片吗

例:下载、上传文件

#coding:utf-8
fromftplibimportFTP
importtime
importtarfile
importos
#!/usr/bin/python
#-*-coding:utf-8-*-

fromftplibimportFTP

defftpconnect(host,username,password):
ftp=FTP()
#ftp.set_debuglevel(2)
ftp.connect(host,21)
ftp.login(username,password)
returnftp

#从ftp下载文件
defdownloadfile(ftp,remotepath,localpath):
bufsize=1024
fp=open(localpath,'wb')
ftp.retrbinary('RETR'+remotepath,fp.write,bufsize)
ftp.set_debuglevel(0)
fp.close()

#从本地上传文件到ftp
defuploadfile(ftp,remotepath,localpath):
bufsize=1024
fp=open(localpath,'rb')
ftp.storbinary('STOR'+remotepath,fp,bufsize)
ftp.set_debuglevel(0)
fp.close()

if__name__=="__main__":
ftp=ftpconnect("113.105.139.xxx","ftp***","Guest***")
downloadfile(ftp,"Faint.mp4","C:/Users/Administrator/Desktop/test.mp4")
#调用本地播放器播放下载的视频
os.system('start"C:.exe""C:/Users/Administrator/Desktop/test.mp4"')
uploadfile(ftp,"C:/Users/Administrator/Desktop/test.mp4","test.mp4")

ftp.quit()