Tornado+Layui(九)Tornado+Layui 前後端分離 頭像上傳

目的:添加人員信息和頭像同時上傳

過程:

        1、Layui頭像界面

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Layui</title>
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <link rel="stylesheet" href="layui/css/layui.css"  media="all">
  <!-- 注意:如果你直接複製所有代碼到本地,上述css路徑需要改成你本地的 -->
</head>
<body>
          

 
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  <legend>選完文件後不自動上傳</legend>
</fieldset>
 
<div class="layui-upload">
  <button type="button" class="layui-btn layui-btn-normal" id="test8">選擇文件</button>
  <button type="button" class="layui-btn" id="test9">開始上傳</button>
</div>
          
<script src="layui/layui.js" charset="utf-8"></script>
<!-- 注意:如果你直接複製所有代碼到本地,上述js路徑需要改成你本地的 -->
<script>
layui.use('upload', function(){
  var $ = layui.jquery
  ,upload = layui.upload;
  
  upload.render({ //允許上傳的文件後綴
    elem: '#test4'
    ,url: 'https://httpbin.org/post' //改成您自己的上傳接口
    ,accept: 'file' //普通文件
    ,exts: 'zip|rar|7z' //只允許上傳壓縮文件
    ,done: function(res){
      layer.msg('上傳成功');
      console.log(res)
    }
  });

  
  //設定文件大小限制
  upload.render({
    elem: '#test7'
    ,url: 'https://httpbin.org/post' //改成您自己的上傳接口
    ,size: 60 //限制文件大小,單位 KB
    ,done: function(res){
      layer.msg('上傳成功');
      console.log(res)
    }
  });
  
 
  
  //選完文件後不自動上傳
  upload.render({
    elem: '#test8'
    ,url: 'http://127.0.0.1:8977/api/file' //改成您自己的上傳接口
    ,auto: false
    ,accept: 'images'
    ,method: 'post'
    ,acceptMime: 'image/*'
    //,multiple: true
    ,bindAction: '#test9'
    ,done: function(res){
    	if(res.code==0){
      layer.msg('上傳成功');
      console.log(res)
     }
    }
  });

});
</script>

</body>
</html>

       2、Tornado後端代碼

# 上傳頭像
class FileUploadHandler(BaseHandler):
    def post(self):
        print('------------------') #self.request.arguments 不會打印圖片信息
        size = int(self.request.headers.get('Content-Length')) //圖片大小
        print('圖片大小:kb', size / 1000)
        if size / 1000.0 > 2000:
            self.write("上傳圖片不能大於2M.")
            # 獲取請求裏的文件
        imgfiles = self.request.files.get('file', None) // 爲什麼用‘file’,我也不知道
        print(imgfiles)
        for file_img in imgfiles:  # 可能同一個上傳的文件會有多個文件,所以要用for循環去迭代它
            save_to = 'upload/{}'.format(imgfiles[0]['filename'])  // upload 是settings配置好了
            with open(save_to, 'wb') as f:  # 二進制
                f.write(file_img['body'])
        self.write({'code': 0, 'msg': 'success'})

      3、上傳圖片二進制數據(也可以自己打印下)——是一個列表

[{'filename': 'character.jpg', 'body': b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00H\x00H\x00\x00\xff\xdb\x00C\x00\x08\x06\x06\x07\x06\x05\x08\x07\x07\x07\t\t\x08\n\x0c\x14\r\x0c\x0b\x0b\x0c\x19\x12\x13\x0f\x14\x1d\x1a\x1f\x1e\x1d\x1a\x1c\x1c $.\' ",#\x1c\x1c(7),01444\x1f\'9=82<.342\xff\xdb\x00C\x01\t\t\t\x0c\x0b\x0c\x18\r\r\x182!\x1c!22222222222222222222222222222222222222222222222222\xff\xc0\x00\x11\x08\x00\xc8\x00\xc8\x03\x01"\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1c\x00\x00\x01\x05\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x03\x04\x05\x07\x06\x08\xff\xc4\x00;\x10\x00\x02\x01\x02\x05\x02\x04\x03\x06\x05\x03\x04\x03\x00\x00\x00\x01\x02\x11\x00\x03\x04\x05\x12!1AQ\x06\x13"a\x07q\x81\x142B\x91\xa1\xb1#Rb\xc1\xd13\xe1\xf0\x15\x16$Sr\x82\x92\xff\xc4\x00\x19\x01\x00\x03\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x05\x04\xff\xc4\x00\x1d\x11\x01\x01\x01\x01\x00\x03\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x11\x02\x12!1\x03A\x13\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xe5\x9bS\x95\xf7\xa1\x02w\xa2\x89\xab{\x0bGN\x94\xe0\x01N \xf2i\x9a#\xda\x80b\x01\xebC\xa4\r\xa6\x9fH\x14\x88\x1d)\x02\xda{\x8e\xb4\xb6\xedL7\xf6\xa7\xd6\x01\x883H\x08\x08\xe0\xd1\x01\x1b\x93Qy\xbdt\xf1\xedFqV\xc6\xect\x9f~*p$\xe3\x8e\xbd\xa8X\t\x12~\xb5\x13b\x93b\xbc\x11\xde\xa0lq\x90\x02\xc9\xe9K)\xaf\xac\r\xa6}\xe8\x81"\xb3\x1b0}0\x00\xdb\xa9\x1f\xde\x8d36\x04\x07\xb6#\xb8\xa5\xe3M\xa4\'\xa9\xa2\xdc\xd5k8\x94\xbd\xba\xb0&8\xedSk\x1c\xcdE8\x91\xb9\xde\x98\t\xa2f\x92$o\xde\x9f\x8d\xea*\xc8 \x9fj\x94\x01\xda\xa2\r\xd2\xa4SSW>\x08\x0e*A\xc8\xa0\x1d*AY\xd6\xb12U\x94\x15Y*\xc2lk\x1e\x9ar\x98E*K\xcd*\xc6\xb6x\xe933\xb5\x1e\xa1\xc7z\x01\x06\xa4\x0b&\xbb\xd5\xc7\x03\x1d"zP\xea\xeb\xd2\x8d\xa0\xf5\xfaP\x15\xd8\x91A\x8bW\xa7\x8ai=hA\x83O\xd8\xcf\xe7A\x02\xe5\xd5I\x93P\x1b\xee\xe0\x94\x04\xaa\xfe\x94\xaf\\\'q\xc4\xf2\xdc}\x05Ukl\xed$H\x9ar\x04\xc7\x12\xda\xb7"i\x0b\x82\xe4\x88\n\x7f\xa6\xa06\xa0\x99d\xdb\xa04\x81)\x1e\x90GI\xa3\rr\xd8.\xa5\x95\xd6G\xf3\x0eE\x11Uu\x04\x99\x1d\x81\x98\xaaf\xf1$\x12w\xf7\xa6\x0e~\xb3\xb9\xefK\x02\xe7\x91i\x90:]\x1d\xc2\xb7\x07\xeb\xfd\xa8B\xd8kl\xb3\xa6\xe7\xfc\xe2\xaa\xeb!\xa4\x01\x07r:Su\x04R\xc3N\xc8\xb6\xf4\xb29\x93\xdb\xa5Y[\xf7\x96\xd0q\xba\xf5\x91T\x91X\x92@$\xd4\xc3\x15v4\x91\xe9""8\xa8\xb1Qhc\x89$\xbe\xa0z\x15\xff\x00\x155\xacx/\x0c\x0c\x1e\x0cqU\xed\xdbG\xb2\x9a\x97\xa4\x12\x18nj\x07F\xb7\x1a\x84VvE7\x94\xc8\x91R\x81\x0b\xbdda\xb1\x86\xdd\xbd$I\x1cI\xe9V\x130\xd4\xc3X\x00N\xe4t\xac\xfa\xe6\xae/\x8e\xd5"\xd4jDmF6\xackNj\xc2\x1e\xa2\xa6Rj\xb2\x1d\xea\xc2V]F\x9c\xd4\xeaiP\x03\x02\x95eci^QV*M\x86\xd3\xbd\x00cJf\xbb\x8eA\xccS\r\xa6:\xd3\x1d\xa9\x08\x82E\x00\x94\x03\xb1\xa0\xb86!\xb6X\xe2\x88\xbc(:Z\'\x83\xb4\xd5;\xd7\xdd\xc9H\x02y\x8eH\xa2@&\xc4ZU_H1\xdb\x9a\x86\xee!\x9c\x18\xb4\x02\xfdv\xa0\xb4\x81\xaeK\x0fH\xff\x00\x82\xa4\xc4]_, \x11\x06O\xb9\xe8*\x82\xb9i\xe8>\x82\x98I`\xaa\t$\xec\x00\xde\xbd.G\xe1\x0b\xf8\xfd7\xb1\xa5\xac\xda;\x8bc\xef7\xcf\xb5t|\x8b\xc3\x98\x0c\xb0\x86\xc3a-\xad\xc3\xcb\x91\xa9\xbf3Q{\x90\xb5\xc9,d\x19\xbd\xf5\xd5o-\xc4\x95\xeem\x90?Z\xb5o\xc2\xb9\xb5\xc2\x07\x90\x15\x8f\xe1c\x06\xbb\xe5\xab\x06=Rh\xdb\x08\x8e\xb0QO\xccVw\xf5\xa5\xe4\xe0\x07\xc3X\xc4\x04\xb9P\x071\xd2\xab\\\xcb.\xdb]D\x12\xa7\xa8\xae\xdb\x99xz\xcb\xa35\xb4\x1c\x19Q\xd3\xdcW\x8e\xccrk\x98_\xe3Y\x1a\x90\x8f\xe2/I\xef\x1d\xcd\x1f\xe9U:s\x86\xb2W\x90v\xa7@\xcc\xd0\x84\xea\xe8\t\xe7\xe5W1\xc5S\x14HP\x01\xd9\xa3\xa8\xaa\xcc\x81X\x81\xff\x00\xd5\xbb\xd5\xfdh\x9f\t\x8e6\x9c\x16Em\xa0\xec$\xd5\x97\xc4\xd8\xba\xde\xb5\xb9i\x88\xe2$~UB\xe2\x86\xb6/\r\x9c\x1d7W\xb1\xe8\xdf#\xfb\xd2\xb7x\xaa\xe9 :\xf6n\x9f#\xd2\xa2\xf2qn\xe5\x95\x7f\xe2[+\x07\xa2\xf0\x7f\xc5C&\xdb\t\xe685ima\xb1\n\r\x8dVn\x01\xf7\'s\xf2<7\xe9P\x12Wk\x8a\x19A\x89\x1c\x8f\xf1Q\x8a\x95{\x0b\x8b\x02\xd8WS\x1c\x02+A\x1c\x11#pz\xd6\x12\xb2[\xb9\xe83m\x84\x19\xe8kK\x0fsJ\x012\xa7\x83Yu\xca\xe5_\x06:\xd4\xa8\xc6*\xaa\xb5J\xaf\xde\xb2\xb1r\xac\x87\xa5P\xab\x1aU\x9f\x8bO\'\x9e\x04pi\xe7z\x01O?J\xeb9\xc23H\x1fL\x1e\xb4\xc6\n\xcfY\xa47\xa4Aq\xa4m\xcf\xb9\xac\xe3\x03\x10w\x92gx\xad&\x83\xb4\x7f\xbdg\xdc\xd21\n\xaax;\x9e\xb4\xf9\x04\xbb\x1e7\x02k\x7f\xc3\x19Z\xe3q\xbfj\xb8\xba\x92\xd9\x84\x07\x82\xdd\xfe\x95\x82C\xdc\xbd\xe5[\x05\xae\xdc!\x00\x1dI\xae\xa7\xe1\xfc\x9b\xec\x18+V\xc8\x82\x14O\xb9\xebK\xbb\x90V\xd6_\x83\x12\x00\x15\xe90\xb8P\x8a;\xd5<\xbf\nT\x02El\xa2\xe9\x8a\xf3\xd4S\xe8\x02*E\xb3<\xd3\xa0\x05\x85[\x80\x16\x05\x04\xcf\xbbhA\xaf\x1d\x9c\xe2\xec\xe0\x98\xbb\x90\x14\x18?\xef^\x9b5\xcc\x06\x08\x80`\x06\xdbQ\xe0\x1fz\xe4\xde/\xcd.\x1ce\xebN\x02I\'H3\xd3q\xfd\xc596\xab\x98\xf3>![C4\xba\xd6~\xeb\x1dCn\x87z\xcd\x0e\x1e\xc8C\x12\x9ft\x8ec\xb7\xd2\xa5\xbcZ\xed\x92\xce\xc4\x9bCHa\xc1\x1d?z\x81AGf"\n\x11 \xd7\xa2OM\xa2\xd8B\xb6\xed\xe2\x0f\xaa\xd3zn|\xbb\xd3\xfd\x80\xf9\xc6\xdb\x15\xb4\x7f\x0b\xb7\xdc3\xc4\x9e\x93\xd0\xf1P\xd9-l\\T\x12\x00\xf5\t\xe5Mh\xa6b\xab\x86\x87\x05\x84yn\xa4~\x13\xd2=\xb9\x1fZ\x8b)\xaa}\x92\xf5\xa2\x0e\x96Pv \xed\x07\xf9O\xf6\xa9.\x01\x88\xe4\xfa\xc0\x80\xcc7\xf9\x1e\xe3\xb5X\xc4bV\xdd\xb4\x82.Xt .\xfb\x8e\x87\xfe\x7fj\xa1\xf6\x82\xb6\xca\xc4\xafBy\x15\x19i\xca\x89\xb5+\x10\xdc\xd5\xec\x15\xe0f\xd3\x1e\x92\xbf\xe2\xa9\x16\xf3\x14(3\xd0O"\x85X\xa9\x1e\xc7\xf2\xa5y\xd8\xa9[\xea`\x015(n\xd5G\t|^O\xea\x1c\xcf\xefV5\x10McyT\xab\x01\x8d*\x80\x134\xaa<U\xac\x90i\xcf\xca\x9a\x915\xd0x\xc5?\x9d0\x9d]\xa8M<\xc6\xf54\x8fyN\x8d\x9a\'\xa8\xac\x80\xc6\xd5\xed@\x1fKmZ\xa1\xc1\x11\xbdGv\xd2\xba\x80i\xcb\x81\xbb\xe0|&\x1d\xf3;\xb8\xecA\x01\xd3k(\xdd\xcf&\xbaK\xe2-a\xac\xf9\xae@A\xbc\xd7&\xc8\xed\xbd\x90n\xbb\x18\x04\xc7\xd2\xba^\x07*\xbb\xe2\x0f\t\xda\xba\xba\xb5\xb4\x91\xef\x1bTw\xf4-[\xf1\xe6Wj\xe0\xb5mn\\a\xb4\xc4\n\xd8\xc3x\x92\xde#O\x96\x9fx\xec\t\xaeow$l\xba\xe1\xf3\x90\xeb\x9e+\xdfdYU\xb1\x85\xb7w\xcb\xf5\x01\xb7\xb5GRO\x84\xf4xLj]\xd2H \x9e\xa3qZ\xf6\x97\\G\x15\x93\x81Kvn\xfa\x90\x05\xed^\x8e\xd5\x8beT\xa1>\xd5)\xac|\xdb\xc3\xe32\xc2:[*.\x11\xb6\xa1\xb1\xae\x0f\xe2\xec\xa74\xca\xf1\xee\x99\x86\x1e\xe7\x96\x87J? \xafH5\xf4\xc8X\x1b\xd5\\\xd3(\xc0g\x18\'\xc3c\xb0\xc9u\x18F\xe3q\xee\x0fCU.\x17=\xe3\xe5ai<\xcd\x08f\xd80dF\xa1\x1f\xf0Scp\x86\xdbZ!F\xb6RY}\xfeU\xea\xbca\xe1\x0cG\x85\xb3;\x8dnn`\xae\x9fK\x9d\xfeS\xefY\x8e\x88 \xc9k\x8d\x07Q\xdfL\xf3Zo\xf5\xbc\xacLE\xa3\x85\xbdh\x90\x0c\xa8V$s"\rT\xbd\xa9\x1fV\xadB\xe0\xdc\x9edV\xe6x\xd6\xeea\xb0\xf7\xc7\xa4\xaf\xde^\xe6fG\xf8\xac|D]P\xc8\x07"}\xcfZ\xa8z\x84\\:<\xa11\xbbOa\xd6\xa3.v?\xb5\x0bq3\x04p)\xd0\x06W\x9d\xa1v\xf74Xzp\xc6OI\xebV17\xd7\x10\xebt(K\x84\x01p\x01\x01\x88\xfc_\xe6\xa9\xea\xe0O\x14s*\x1b\xb1\x83\xefJ\xc3\x95k\n\xe5n\x82\x0e\xe3\xf6\xad\x953\xccV\x0e\x1c\xe9ey\x90\x1a\x08\xed<V\xe0a\xb4}+.\xe1\xe8\xc9\x02\x95\x04\xcfZU\x9e\x1e\xb2\xe7\xde\x9ehX\x891M\xabj\xf5\xb1\x15 \xe3\x8a\x02dR\xe3~\xb4\xaaG\xa8S\x16\xd8oBM0\rq\x92\xdd\xa5k\x97\x1d\x82\xaa(\xdd\x98\xf0\x05\x01\xea\xfc+l\xe6\xd6\xd7\'\xb2\x96\x1e\xf5\xd6fp\xd3\xa9W\xab\xec G\xbdw\xac\x8b+\xb1\x95e\xb6p\xf6\x94\x0bv\xad\x84P{W\x98\xf0\x07\x83\x93\xc3y\\\xde\n\xd9\x86 \x07\xc4\xdc\x1d\x0fD\x07\xb0\xfd\xeb\xda\x9d\x92\x05e\xd3;\xd3\x99\xfcSkyf\x1a\xce3\rh\\\xb8\x1ft\xe95\x89\xe1\xbf\x88\x98\xbcIk\x03%\xbbu\xed k\x86\xc5\xf5\x80\xbcL7\xbfJ\xf7\x9e#\xca\xec\xe6V\xcd\xbb\xeb#\xf6\xac|\xa7\xc3\xf6\xf0\x03A)uz\x12\xb0~\xbd\xe9K3*\xe7\xc5\xac\xbf\xc5\x16s"\x01\xcb\xf1\xd8v\x98\x9b\xd6HY\xf6m\xc5z\xbc\xb3\x18\xc1\x82\x92t\x9e&\xb3\xacY\n\xa0\x00\x00\xec+K\t\x86\x97\x04\n\x92\xad\xb5mBh\xbaP\xa2\xc2\x8af0\x0fzl\xdc\xf3\xe2@\xb7\x7f\x0e\x98w>\x9b\x80\xfe\x9c\x1a\xe5N\xcfg\x10m\x06\xddH\'\xe5<\xd7N\xf1\xf0ca\xaf\xcf\xfa`\x8d\xfd\xc8\x15\xc83\x0ce\xcf\xb5\x17\x1b,h\xd9w\'\xb7\xedW\xc4\xd6\xdc\xfcA\x98]%|\xa6S*X\t\xe0\x890\x07\xd0\x8a\xcf\x05\xad\xa9\nI\xe8O\xb7\xbdz\xec?\x83s\xac\xc3\r\x85\xf30wU\x8b\x10\xcaD\x15NA\xf9\xff\x00\xb5z\xbc\x07\xc2\xcc\xb3\x07z\xd5\xcc\xe7\x11\x88\xc6\\\xbd\x06\xd6_`\xf9`\x91\xc9v\xed\xde\xaf\xcaE^\xa4q\xcb\x86\x14\xa8\x1dfO\xebS\xe1\x95^\xc5\xc5.\x01i\x00\xf6\x815\xdcs\xbf\x07`r\xfc\x13\xde\xc6\xf8?-\xbd\x94\x95\xf5\xdd\xcb\x1d\xd7\x13\x87\x1f\xcc5\x1f\\u\xae?\xe2\\\x88xg\xc4/\x81\\G\x9d\x85d[\xd8l@\x1f\xea\xd9u\x951\xfa\x1a%\xd2\x9dk\x06cc\xcd8m\xb6\xa1\xba\xbaZ@\xd8\xd2Yb\x00\x12I\x80\x05Q\xebC\x05l^\xb7x\x11\xb1H\x9e\xc7\xa5iY\'\xc9RG\xa8\x08?:\xa9\x83\xb2\xd6mna\x89\x92?\xb5]F\x91\x15\x97FRF\xf3J\x96\xd0w\xa5S\x87\xac\xd71C\xa8\n\'eO\xbe\xc0O\x12j2\xc0\xfd\xd6S\xf25\xbaDN\xf3\xc5"\xf1\xb5Fn,n\xeb?:\x1f6\xdf\xf3\xaf\xe7H\x92\xeb\xee+\xa1\xfc)\xf0\xea\xe3\xb3\x1b\xb9\xd5\xf4\ro\x0c\xde^\x1c\x1f\xfd\x9f\x89\xbe\x83a\xf3\xael[r\'q\xd0\xf4\xaf{\xe0O\x1b\xe1\xf2\x0c\x13e\xf8\xb2V\xdf\x98]\x1c\x0e\xf4\xba\xf8]nzw\xb5kXe\x02\xe0;\xf6\xa9mb0\xd7\x98\xdb\x00\x86#\xd3#\x9a\xe6\x99\x97\x8d|F\x811x,\x86\xd6a\x96\x8d\xc5\xc4\xc4\x86\xb8DI:W\x8f\x95z|\xa7\xc4\xb9~s\x83\xb5\x88\xc3\x06\xb5t\xc1k7\x14\xab\xa9\xea\x085\x95e\xe2\x9f\x1cC]m&ET\xb6 \xd13\x17\xc4\\\xecX\x91\xedS-\xaa\x95\xa6\xc3\x89\x8a\xdb\xc2\xe8Kc\xbddXB\xa4U\xf0H]\xa8*\xbe\xd7\xc0\x15R\xee,\x8d\x85B\xc4\xf5\xa8\x18\xf2)\x94\x8f)\xe3\x16\xfbJ\xa5\x8f.U\xc9g=\x00\x1d\xeb\xcf\xf87\xc2\xb6\xb1\x19\xc5\xcc\xd3\x14<\xef)\xa6\xd2\x95\xf4\x82x5\xee\xb1\xb8\x11\x8aR\xa4s\xde\xade\x98{X\x1c*Z\x00\x009\x81\xcd\x12\xabr.\x95)d\x908\xe6\xb3\xbf\xee\\\xb7\x0b\x9a&S\x98#\xe1.bT6\x17\x15y?\x85|\xf5@\xdf\x85\x81\xe8y\x9a\xb1\x99\xfd\xab\x1f\x97\xdf\xc1eWR\xde9\xd4C0\xd5\xa1z\x98\xf7\xe0Um63\xac\x9a\xeeS\x99\xe1\x95q(\x03\x94\x89\xd2\xc3\x87CN3\xbe\xfe\xbd \n\xd8U\xb6\xf0\xc8IF\xf9\x11_8|OD\xc3fy>\x0c0\xf3p\xf9xG\xdb\x85.\xc5g\xe9]\xdf,k\xd6r\xcbv\xb17\x07\x98\'[\x93\xb0\n9\xaf\x9a|]\x9c\xae\x7f\xe2\xcc\xcb2\xb4I\xc3\xb3\x94\xb5\x07\x9bk\n\xbfN\xb5\xa73\xd9\xfes\xdb\x13\x12\xc3\xec\xf6\x13H\r\x04\xb1\x1dw\xdajl\xba\xcc\xb7\x9a~B\xaa\xaa\x1cE\xf0\x89\xb4\xf5\xad\x8bV\xc5\xbbJ\x83\x80*\xba\xf4\xd9*\x1fT\xd4\xda\x84qU\xc3\x00x\xa3\xd5Y\x98\x89\xe6\x95DX\xd2\xa3\x03\xe8\xff\x00\x0cx3 \xf0\xf6Z\xafc\x01f\xed\xcb\x82Z\xfe!\x05\xc7a\xeeO\xf6\x8a\xb5\x88\xf0\xbf\x873#\xe6b|9\x96\xde\xfe\xb3aT\x9f\xca)\x8e!\xd7*\xc3\xac\xed\xa1G\xe9Z+wSZ\xb2\xa6\x06\x9d\xc8\xa5+\x0b\xaa\x96<-\xe1\xbb1\xe5dYz{\x0c2\x98\xfd*\xe0\xc9r\x85\xd9r\xcc"u\x91\x86O\xf1WS\x0b\x10\xc8H?:0\xb7G\xf2\xcf\xca\xa9\x9e\xd7\x8c\xf1\x7f\xc3\xbc\x9f\xc5\xd8e\rw\xecx\xeb`\x8b8\x94@\x08\xf6q\x1e\xa5\xaf\x9a1\xb8[\xf8\x1cn\'\x03y\x7f\xf2,]k.\xab\xbc\xb01\xb7\xf6\xaf\xb2K\\\xe1\xad+\x0f\x9dq/\x8d\xe7\x07\x97\xe7\x9e\x1e\xcc\xadaE\xbc\xc2]\xae2\x80<\xc4B\xbad\xf5 \x93\x14\xe5_\x1d]\xc5\x9f\x06d\x87&\xb2\xa8-yw\xbc\xa5\xf3\xe3\xff\x00g\'\xf2\xd8W\xb4\xf2\xac\x9b\x9ew\x94\x9ei\x1f~7?Z\xe7\xb97\xc4\\\xb8\\\xdd\xd1m\xbbO\x97t\xc1\x1fZ\xf6\x963\xec\xaf\x1d\x85\x17\xf0\xd8\x94#\x86B}Jk:\xd3\xde\xac\xaa\x93x\x9a\xbfm\t\xe9U0l\x97\x8e\xa5\xdc\x1a\xd5\xb5j\xa4QZ\xb7\x154S\xaa\xc1\xa9t\x88\x93M\x16\xab\x91\xb5FPsR\xb9\x8a\x89\xaeE\x03L\xd6\xc6\x9ej\x9d\xd6`\xdaQu\x11\xd2\xa5\xbb|(;\xd7\x91\xf1W\x89q\x9e\x1f\xc2&?\x07\x85\x18\xa5[\x80^I2\x17\xb8\xa7\x81\xe8r\xd7\xb1\x97\xe6\x98\x93b\xf9\x18\x9cS\xf9\x97>\xd0Hb}\xbd\x87\x02+Da\x95\xb1G\x10\xc5\x9e\xe3\r0\xbb\x08\xaef>2e7\xf0\xca.\xe4\xf8\xbb\xd7A\x95P\xa3c\xeck\xccx\x9f\xe2\x9e{\x98\xe1\x8e\x17\x05hev\x1eA(\xda\xae\xb0\xff\x00\xe5\xf8~\x95s\x91\xe3k\xd4|S\xf1\xe5\xac\x1e\n\xff\x00\x872\xbb\xca\xd8\xeb\xeb\xa3\x19r\xd1\x95\xb1o\xad\xb0\x7f\x98\xf5\xec>u\xc5\x95\x0b[\x94\x13\xbe\x98\x1e\xfcP(>\xb6;\xcfRz\x9e\xb5w\x02\x80+\xb9\xea`\x7f\x9a\xd2L\x8b\xe6bL6\x14X\x92H,TLt\xab\x12OZa\x1d\xa9\x8f\xca\xa2\xfbTH\xb1Db\xa2S\x14\xfa\xa9\x1e\x91>\xf4\xa874\xa9\xe0\xd7\xd2\xae\xe0`\xf0\xe9\xfd+\xfbV\xa6\x10\x13\x89W\xec+\x9f\xe4\xde1\xc2f\xff\x00d\xc36\xab8\xb8\xd2\xf6\x9f\xa9\x03\x91\xdcWA\xcb}D\x9e\x95\x8f,\xbb\x98\xdcC\xb5g\xe6\xf9\x82\xe5\xb9~\'\x16\xc5G\xd9\xed\xb5\xd2\x19\xa0\x10\xa2b~\x95yG\xa4Er\xaf\x8d\xc2\xee\x1f\xc2vn\xd8\xc4]\xb7n\xe6)mb,\xabz.\xa9\x04\x89\xf9\x10+Vrm\xc6\x96\x0f\xe3\x17\x861\x89\x87\x03\x13pb/\xb2\xa2X)\x041\xe8\xccv\x03\xdej\x97\xc6L\x90f^\r\xb5\x99]\xb4Ce\xd7\xd6\xf3\x8536\x9a\x15\xe0\xff\x00\xf95\xf3\xdaHWh\x06\x06\xe0\x8a\xda\xc1\xf8\xb3=\xc3eX\xac\xacfX\x8b\x99n&\xc9\xb5w\ry\xfc\xc5\x8f\xe9\xd5\xf7Ob*\xbck[\xf9\xe7\xc7\xbd\xf0\x85\xff\x00\x0bb\xad\xb2\xe1\xf0\x96U\xf6\x0c\xafd\x1f\xd4\xd7\xa1\xc7\xf87"\xc6\xdbf\xb3e\xb0\x97H\xfb\xf8W6\xe7\xe9\xc5r|\x83;\xc1\xe5N\xf8\x9cE\x8b\xaa\xe3\xd2\x05\xaf\xc46\xef]W\'\xcf\xf2\xfc\xce\xcd\x83\x86\xc6\xdag\xbb:m3\x05\xb9#\x91\xa7\x9a\xcf\xa9b\xac\xcf\x8do\r\xe1.\xe5\xd8[xk\xb7\xda\xf1A\x1a\xdb\x93^\xb5X@\xaf7i\xca0\xd8\x8a\xd4\xb5\x880&\xa0\xabL=/3\xde\xaa\x0b\x929\xa1{\xe1\x06\xe4SEOr\xe5T\xbbx\x0e\xb5R\xfe`\x8a\x0f\xa8VF78Kje\xbf:bE\xccV0\x03\x13Cj\xc5\xbcB\x1f5C)\x1c\x1e\xb5\x89\x82w\xcc1!\xf7\xf2\xc1\xe7\xbdz;k\x0b\xb5%W\x9a\xcdr\x0c\xba\xcd\xb6\xb9k\x0bmH\x92}"\xb8\xbf\x88\x18\x1c\xd1\xd1x]\xa0w\xae\xeb\xe2\')\x81x<\x88\xae\x05\x9b\\\xd7\x9ab\x08\xfej\xd7\xf3\xfas\xe2\xaa)\xb8\xca\x80\xc4\x985\xaa\x00U\n\xbb\x00"\xaa\xe1-hMdz\x8f\x1f*\xb4\x04\xc0\x15w\xda\x8e7\x14\xa6iA\xa5\xfbT\x83\x8e7\xa6 \x8azM\xc74\x00\xd2\xa4iPz\xd6\xb1r\xe3\xdc\xb3\xe4\xb3\xa5\xc0\xe6\xe4\xa4\xca\xafrG$\xd7S\xf0\'\xc4L#\xde\xc3\xe4\xf9\xbd\xc5\xb5\x8ae\x01q:\xa6\xdb4\xc2\xa3\x1e\x8c{\xf1\\z\xc5\xe3j\xf22\x98"]e\xb60\rKj\xee\x1e\xde\x05\xca\xab<\xb2\xb3[c\x1a\xcc\xec\xbbt\x81\xb9\xefYb\xfb\xe6_U\xf5\xb31E\x83\xb1\x8a\xe5_\x1b\\?\x83-\xa9\xeb\x8c\xb7\x1e\xff\x00z\xbc/\x83\xfc{\x9ed\x01T\xe2>\xdb\x97\xdcf\x0b\x83\xbfr\x15\x07:\x95\xb9X\xed\xc7\xb5O\xf1+\xc6X?\x15\xf8w/8\x03u\r\xbcF\xbb\xf6.\x08d\xf4\x90\x0fb9\x83W>\xbc\xf3\xf3\xb3\xa70:\x96GI\xdcR\xd7\xe9\x00\xf3R\xb8\x06\t<\x89>\xf5\x0b.\xf0kV\xc9\x1d\x86\x94X\x8e\xa6h\xcb\xaf\xda\x11\xd0\x14\xd1\x10T\x90A\x1dGY\xaa\xfa[W\xeb\xbd%h\x930z|\xe8N\xbdnK\xf1\x03<\xca\x1f\x12\xc3\x13\xf6\xdbn$&0\x97\n\xdd\x083#\xe5^\xe7.\xf8\xb3\x95_\xb1\x87\xfbv\x1e\xf6\x17\x10\xe7M\xc2\x83U\xa4=\xe7\x98\xae5#G\x06I\xe6\x88\xab*\xa0\xe4\x11 T\xde%+%}\x05s\xc6yjj\xd1\x8b\xb2\xe1D\x9d.\r`c>!an9[/\xac\xf4\x0b\\q[M\xe6*`\x1e\x9d\xeb_)\xcf-\xe0\x15\x05\xfc\x12_\x01\xfdN\x0e\x96\x0b\xed\xdc\xd4\xde0\xbcc\xdc\xff\x00\xd6\xb3|\xcd\x88\xc2\xe1\xca\x83\xf8\x98\xc5j`r\\M\xe6\x0f\x8d\xbf\xe67a\xb0\x1496{\x92\xe3\x8b\xda\xc2bU^\xd8\x04\xad\xe1\xe5\x98=D\xf3^\x96\xc4\xeb\xdcEf-[\xc0\xe1\x92\xd2\x04A\x00V\x88X\xa8l\x00\x14T\xec\xd0(E\xaf3\xe2\x8b\x91\x87*;W\x06\xba\x82\xe6e\x7fW\x02\xe1\xae\xe7\x9f\x03t\xbc\xd7\x08\xbfs\xff\x00:\xf5\xc5\xebq\xbfz\xbf\xcf\xed_?\x1a\n\x04Q\xf0j\x05x\xa9\x03w\xab\\\x19jb\xddhf\x96\xafj`SJf\x9af\x81\x89\xe0R\xc2\x19`)TrI\xf7\xa5@\xc5\x9b\xb6\xc6!^\xf5\xa8\xd4\xd7\x1b\xf8Cv\xd27\xda:G5\tH(\x18L\x80\xc4\x86\x92\x07\xf2\xc7z\xb6o\\\xc4[\xb5\x86\xb7`\x0b\xe1\xc8Sj\x00`W\xaf\xeeMA\x88G\xb2\x80\xdcT\xf5\t\x17-\xb6\xa0\xe2{\xf5\xe2\xa25\xb48\xacB\xe2P\xa9B\xad\xb1,9=8\xda@\x8d\xbe\xb4\x1es\x10m[\x12\xac\xc0\x87\x03s\x1b\x0f\x95\x15\xebf\xcd\x9b`\x1blo\xb1eUi\x026\xe7\xf4\xa8\xb5[\x9b\x80\x7f\xa9\x01F\xb3\xc1\x1c\xff\x00\xce\x95Q*\x97\x1d^\xfb\x15\x00)4\xf0\xacA\x9f\x94\xf4\xa8X\xc3\x03=h\xc3\x16a\x06\x18\xf6\xda\xaf\x08\xa0\xe9$|\xb9\xa1\x81\xa4\x03\x00\xcf$\xf4\xa2r\x0c\x05\xe3\xf5\xa4\t\x0e\x0f\xde\xeb\xb54\xd3\\P\x08\xdbLt\x8ei\x802IX\x00p)\xdc\xea\xb9\xac\xc0\xd5\xbc(\xe2\x94\xcbn\xc4\x86\x1b\x98\xa0\x8c\xacB1\x07\x9d\xa9\x10UW\xf6\xa7t\x03\x8e\xdf\xad0\xd4\\\x10f8\x02\x80&3q\x8b*\x9d\xb85\xaf\x96x\xaf9\xca\x8d\x9f#\x1bq\xedZ\x05\x05\xab\xbe\xa4\x8f\x95b\xc9\xf5\x16\xe7\xf6\xa7:\r\xb5\x07b$\xccI4\xac\x94:vU\xf1l\xdaKV\xf3<\xb04\x18\xb9{\x0e\xd0c\xa1\nz\xf7\xde\xbd\x16\x17\xe2\x7f\x86\xb1k\x17\xae\xe2\xb0\x8eN\x9d7l\xc8\x1e\xe4\xac\x88\xae\x1e\xc0K\x08\xa7\x82`L\xc8\xa9\xf0\x85\xe3\x1d_=\xf1\xdeF\xd8+\xc7\x03\x88lF!\x94\x8b@[ j\xe3rx\xaeN\xc8\xca\x08a\xb9;\x9aCy\x9e\xb4K\x06}\xc5T\xe3\xc7\xe1\xc8\x9e\xd3\x16\xb6\t\xf9T\xeb\xc0\x13U\xb0\xe4\x86e\x00\x11\x13\xb8\xabZH\x13\xb1\x9e\xd4\xd7\x05\xcf\x14\xd4\x859\xe2\x9001\xc8\x9a\x12g\xe7O\xbc\xd3N\xe2i` :\xcd*bOCJ\x80\x96\xd3\xda\xb9\xad\xda\xe9F\xd2t\x85\xfc]\xd4\xfc\xcf\xe9O\x87\xb8\x98Tsv\xda]\xd2t\x82N\xa5U\xeb\xa5{\xfb\xf4\xaa\xf7t9-|hvi\x05@\x82"!GM\xe8\x1a\xe0S\xa4:0Q\xa5\x072{\x9a\x9c=K!\x0f\x9dh\x9biu\xcc </P\rE~\xed\xa3jR\xd1\xb7,HN\x8a>|\x93N\x19\x92\xdd\xc6BY\x15@\xd6v\xdc\xf4\x15\x1e*aAua\x024\xf4\xf6>\xfd\xe9\xcf\xa9VRX\x15\xdbzt\'\x82N\xd4\x03f\x83\xc5;zX\x11\xc5YjuE*I\x1b\x1e\xbf\xcbC\x001\x13\xc8\x8d\xb8"\x84A\x81\xb9\x03\x93\xda\xa5\x82\x80\x83\xf9w\xa0#\xfb\x92\x082(\x9c\x83\xb2\x8e\xdb\x96\xe4\xf7\xa1\xf5j\xdcI\xedE\xa5B\xb7:\xba\x11\xbc\xf7\xa0\x83\x03bD\x7f\x7fj^\x95\x90\x01\x07\xbc\xd3\xea A\xea9\xa7:}\xe6y=\x05\x06Bt\xa8e\x95?vzP\x99s06\xeb5*\x90\xa0\x83?0y\xa1PLz~\xf1\xe2\x81\x806\xdac\xf1\x1e\xc6f\x940) \xc4s\x14pL\xfa@?:v\x95\x1a\x03\x13\xd6)\x9e\x04l\xa7\xd2bz\xd2\x89\'\xf3\x8a0\x9b\xee\xc3\x9e\t\xa4`\xee8\xebL\x0e\xc1!\xe4\x18\x00t\xa9\xd4\x00\xde\x9b\x9b\xfb\xd46Xy\x81H\x90\xdd\xaaf\xf2\xf5\x1dK\x11\xdb\x9aT\xd2\x00\x1dvoW\xb8\xd8\xd0\xb2\xb0\xdc\x83\x14\xccP\xfe)\xdb\x89\xa6[\xca\x16\x02\xc8\x9e:\xd2\x07\xa1\x9fj6\x01\xc1*\xdb\xce\xcaj##\xac\x1e\xb4\x81\xf6\x1b\xd2\xa1\x83\xd4\xd2\xa0-\xdd\xb3\x87tk\xb6./\x96\x0f\xae\xd5\xc3\x0c\x83\xd8\x9ew\xaa\x82\xda\xdb\xbeYm+&\xe4\xa5\xc3\xfaw\xa5J\xa6\x04\xe7\x0f\x82*Q\xaf^\xc3\x11\xbb[q=7\x9e\xd3\xc0\x15\x99u\x81uU\x90\x00\xe0\xf7\xa5J\x9cMF\xc0\x88\x9a"%\x01\x9d\xc5*UDH\xde\x98\x98\x1db\xa7\x0fmF\x92\x8cX\xf1\r\xc7\xe9J\x95\x00W\x91,\xddd(IF*\xde\xae\xa3\xe9I-\xa7\x92o\xaa\xb0]z\x07\xa8\x181=\xb8\xa5J\x80\x10\xc9\xcb\x06#\x9d\x8f4w\x91l\xbe\x90\x0e\xb1\x0cd\xc8\x12\x01\x02\x95*p\xe1:\xaa\xa2\x12\x1a\x18\x16\x03T\xed$\x1e\x9e\xd4\x92n\xb2\xdbM\xd7\xb7x\xeaiR\xa0\x7f\x06_\x0e\x96\xcb\x1bn\x00\x06\n\xb4\xef\xd8\x83\xfeh\xb16\x97\x0f\x8d{`\x98R>f@?\xde\x95*\'\xd3\xfe\x86\xda[\xbe\xd7\x08F](\xd77n\xdd8\xa2\xb6\xb6\xef\x17\x01YJ\xdbg\x04DH\x13\x06\x95*\x02-\xc80d\x8d\xe1v\xa2\xb4\xd0\xda\x89\xfc\xf9\xa5J\x99\xa6\xf4\x95\x0c@>\xf3NB\x83\xdf\xae\xe7\x8aT\xaaA\xb5&\x90L\x02\x07n*]B\xe4\x07\xd2\x1b\x85n\xff\x00:T\xa8\x08\x0c\xab\x10F\xe2\x95*UP\xe3\xff\xd9', 'content_type': 'image/jpeg'}]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章