色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

怎么用Python寫一個網頁程序,上傳文件,處理完畢,下載下來?

傅智翔2年前13瀏覽0評論

直接上代碼

1、服務器接口

importflask,os,sys,time

fromflaskimportrequest,send_from_directory

interface_path=os.path.dirname(__file__)

sys.path.insert(0,interface_path)#將當前文件的父目錄加入臨時系統變量

server=flask.Flask(__name__)

#get方法:指定目錄下載文件

@server.route('/download',methods=['get'])

defdownload():

fpath=request.values.get('path','')#獲取文件路徑

fname=request.values.get('filename','')#獲取文件名

iffname.strip()andfpath.strip():

print(fname,fpath)

ifos.path.isfile(os.path.join(fpath,fname))andos.path.isdir(fpath):

returnsend_from_directory(fpath,fname,as_attachment=True)#返回要下載的文件內容給客戶端

else:

return'{"msg":"參數不正確"}'

else:

return'{"msg":"請輸入參數"}'

#get方法:查詢當前路徑下的所有文件

@server.route('/getfiles',methods=['get'])

defgetfiles():

fpath=request.values.get('fpath','')#獲取用戶輸入的目錄

print(fpath)

ifos.path.isdir(fpath):

filelist=os.listdir(fpath)

files=[fileforfileinfilelistifos.path.isfile(os.path.join(fpath,file))]

return'{"files":"%s"}'%files

#post方法:上傳文件的

@server.route('/upload',methods=['post'])

defupload():

fname=request.files.get('file')#獲取上傳的文件

iffname:

t=time.strftime('%Y%m%d%H%M%S')

new_fname=r'upload/'+t+fname.filename

fname.save(new_fname)#保存文件到指定路徑

return'{"code":"ok"}'

else:

return'{"msg":"請上傳文件!"}'

server.run(port=8000,debug=True)

2、客戶端請求

importrequests

importos

#上傳文件到服務器

file={'file':open('hello.txt','rb')}

r=requests.post('http://127.0.0.1:8000/upload',files=file)

print(r.text)

#查詢fpath下的所有文件

r1=requests.get('http://127.0.0.1:8000/getfiles',data={'fpath':r'download/'})

print(r1.text)

#下載服務器download目錄下的指定文件

r2=requests.get('http://127.0.0.1:8000/download',data={'filename':'hello_upload.txt','path':r'upload/'})

file=r2.text#獲取文件內容

basepath=os.path.join(os.path.dirname(__file__),r'download/')

withopen(os.path.join(basepath,'hello_download.txt'),'w',encoding='utf-8')asf:#保存文件

f.write(file)