日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tornado--基于H5图片的上传

發(fā)布時(shí)間:2025/4/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tornado--基于H5图片的上传 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

日記

好久沒有分享過東西,一直在學(xué)習(xí)狀態(tài),學(xué)的并不好很多東西都沒有,也寫了很多demo,后續(xù)整理出來在分享,就不分享了,不為什么因?yàn)榻裉熘芰?#xff0c;好不容易雙休,大早上的一個(gè)人醒來,刷刷知乎,聽音樂、分享一篇簡單的東西吧。

切入正題

問題的引入就是有關(guān)前端和后端的結(jié)合,基于tornado框架怎么上傳圖片到服務(wù)端?

H5、CSS圖片上傳

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <div class="container"><form class="form1" method="post" action="/add" enctype="multipart/form-data"><input type="file" name="file_input" multiple="multiple"/><input type="submit" style="width: 100px;height: 40px;font-size: 20px;background-color: rgb(210,210,210)" value="確認(rèn)增加"></form> </div> </body> </html>這里是前端代碼:如果不加上 multiple 就只能上傳一個(gè)文件。enctype="multipart/form-data" 這個(gè)是必要的,必須寫。

tornado代碼

import os import base64 import tornado.web import tornado.ioloop import tornado.options from tornado.options import options, define from PIL import Image# 進(jìn)行tornadao渲染效果 define("port", 8001, type=int, help="this is server port")def img_copy(img_info):"""獲取前端所傳入的圖片以及保存到自己本地和數(shù)據(jù)庫各一份。這里以傳入三張圖比呀哦,你也可以根據(jù)需要二修改。:param img_info::return:"""img1_name = dict(img_info[0])['filename']img1_body = dict(img_info[0])['body']img2_name = dict(img_info[1])['filename']img2_body = dict(img_info[1])['body']img3_name = dict(img_info[2])['filename']img3_body = dict(img_info[2])['body']all_base64 = [img1_name, img2_name, img3_name]all_name = [img1_name, img2_name, img3_name]all_body = [img1_body, img2_body, img3_body]for i in range(len(all_name)):with open('./static/person_img/' + all_name[i], 'wb') as f: # 保存到static路徑下,這樣圖片就可以在前端展示了。f.write(all_body[i])sourch_path = './static/person_img/' + all_name[i]im = Image.open(sourch_path)out = im.resize((300, 300), Image.ANTIALIAS) # 重置圖片的大小。out = out.convert('RGB')out.save(sourch_path)# with open(sourch_path, 'rb') as f: #想抓為base64保存到數(shù)據(jù)庫,后期通過數(shù)據(jù)庫展示。# base64_data = base64.b64encode(f.read())# s = base64_data.decode()# infos = 'data:image/jpeg;base64,%s' % s# all_base64.append(infos)# return all_base64class AddHandler(tornado.web.RequestHandler):"""添加信息的類對(duì)象。"""def get(self):self.render('add.html')def post(self):imgfile = self.request.files.get('file_input')img_list = img_copy(imgfile)if __name__ == '__main__':tornado.options.parse_command_line()# 創(chuàng)建appapp = tornado.web.Application(handlers=[(r'/add', AddHandler),],template_path=os.path.join(os.path.dirname(__file__), "templates"),static_path=os.path.join(os.path.dirname(__file__), "static"),)# 創(chuàng)建服務(wù)器server = tornado.httpserver.HTTPServer(app)# 監(jiān)聽端口下的appserver.listen(options.port)# 啟動(dòng)服務(wù)tornado.ioloop.IOLoop.instance().start()

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

這是一個(gè)圖片從前端傳入到后臺(tái)的方法,你可以參考,或許有更好的方法也是未嘗不錯(cuò)的。如果可以請(qǐng)給作者留言,作者也去學(xué)習(xí)學(xué)習(xí)。今天的分享簡單結(jié)束了。

來源:https://blog.csdn.net/weixin_42812527/article/details/85012441

轉(zhuǎn)載于:https://www.cnblogs.com/qixidi/p/10190190.html

總結(jié)

以上是生活随笔為你收集整理的Tornado--基于H5图片的上传的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。