七牛云圖片上傳

七牛云圖片上傳

可查看七牛云上傳圖片的SDK

from flask import Flask, render_template, request, jsonify
from qiniu import Auth, put_data

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html')


# 原始上傳文件的示例
@app.route('/upload_raw/', methods=['GET', 'POST'])
def upload_raw():
    file_obj = request.files.get('f1')
    file_obj.save('a.png')
    return 'success'


# 七牛云上傳
@app.route('/upload_qiniu/', methods=['GET', 'POST'])
def upload_qiniu():
    file = request.files.get('f2')
    # 七牛云的密鑰管理可以查看
    access_key = '******'
    secret_key = '******'

    q = Auth(access_key=access_key, secret_key=secret_key)
    # elm-flask創(chuàng)建的存儲空間名
    token = q.upload_token('elm-flask')

    ret, info = put_data(up_token=token, key=None, data=file.read())
    print(ret.get('key'))
    return "success"


# 只提供token接口
@app.route('/uptoken/')
def uptoken():
     # 七牛云的密鑰管理可以查看
    access_key = '*****'
    secret_key = '*****'

    q = Auth(access_key=access_key, secret_key=secret_key)
     # elm-flask創(chuàng)建的存儲空間名
    token = q.upload_token('elm-flask')
    return jsonify({"uptoken": token})


if __name__ == '__main__':
    app.run(debug=True)

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>上傳文件示例</title>
</head>
<body>
{#  普通上傳   #}
<form action="/upload_raw/" method="post" enctype="multipart/form-data">
    <label for="fid"><input type="file" id="fid" name="f1"></label>
    <input type="submit" value="上傳">
</form>
<br>
{#  七牛云上傳   #}
<form action="/upload_qiniu/" method="post" enctype="multipart/form-data">
    <label for="fid2"><input type="file" id="fid2" name="f2"></label>
    <input type="submit" value="上傳">
</form>

<br>
<br>
{#  七牛云使用前端上傳   #}
<script src="https://cdn.staticfile.org/Plupload/2.1.1/moxie.js"></script>
<script src="https://cdn.staticfile.org/Plupload/2.1.1/plupload.dev.js"></script>
<script src="https://cdn.staticfile.org/qiniu-js-sdk/1.0.14-beta/qiniu.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="{{ url_for('static', filename="itqiniu.js") }}"></script>
<button id="upload-btn">上傳文件</button>
<input type="text" id="image-input">
[外鏈圖片轉(zhuǎn)存失敗(img-ClhLBywP-1562225639183)(https://mp.csdn.net/mdeditor/86290075)]
<script>
    window.onload = function () {
        itqiniu.setUp({
            'domain': 'http://pekvn6or3.bkt.clouddn.com/',
            'browse_btn': 'upload-btn',
            'uptoken_url': '/uptoken/',
            'success': function (up, file, info) {
                var image_url = file.name;
                var image_input = document.getElementById('image-input');
                image_input.value = image_url;

                var img = document.getElementById('img');
                img.setAttribute('src', image_url);
            }
        });
    }
</script>
</body>
</html>
// js上傳七牛云
window.onload = function () {
    itqiniu.setUp({
        // domain 為七牛云創(chuàng)建空間所生成的域名
        'domain': 'http://pk7rw1paf.bkt.clouddn.com/',
        // browse_btn 為html的button的id值
        'browse_btn': 'upload-btn',
        'uptoken_url': '/uptoken/',
        'success': function (up, file, info) {
            let image_url = file.name;
            let image_input = document.getElementById('image-input');
            image_input.value = image_url;
            // 將上傳的圖片回顯到頁面上
            let img = document.getElementById('image-show');
            img.setAttribute('src', image_url);
        }
    });
};
var itqiniu = {
    'setUp': function(args) {
        var domain = args['domain'];
        var params = {
            browse_button:args['browse_btn'],
            runtimes: 'html5,flash,html4', //上傳模式窖梁,依次退化
            max_file_size: '500mb', //文件最大允許的尺寸
            dragdrop: false, //是否開啟拖拽上傳
            chunk_size: '4mb', //分塊上傳時,每片的大小
            uptoken_url: args['uptoken_url'], //ajax請求token的url
            domain: domain, //圖片下載時候的域名
            get_new_uptoken: false, //是否每次上傳文件都要從業(yè)務(wù)服務(wù)器獲取token
            auto_start: true, //如果設(shè)置了true,只要選擇了圖片,就會自動上傳
            unique_names: false,
            save_key: true,
            multi_selection: false,
            filters: {
                mime_types :[
                    {title:'Image files',extensions: 'jpg,gif,png,jpeg'},
                    {title:'Video files',extensions: 'flv,mpg,mpeg,avi,wmv,mov,asf,rm,rmvb,mkv,m4v,mp4'}
                ]
            },
            log_level: 5, //log級別
            init: {
                'FileUploaded': function(up,file,info) {
                    if(args['success']){
                        var success = args['success'];
                        var obj = JSON.parse(info);
                        var domain = up.getOption('domain');
                        file.name = domain + obj.key;
                        success(up,file,info);
                    }
                },
                'Error': function(up,err,errTip) {
                    if(args['error']){
                        var error = args['error'];
                        error(up,err,errTip);
                    }
                },
                'UploadProgress': function (up,file) {
                    if(args['progress']){
                        args['progress'](up,file);
                    }
                },
                'FilesAdded': function (up,files) {
                    if(args['fileadded']){
                        args['fileadded'](up,files);
                    }
                },
                'UploadComplete': function () {
                    if(args['complete']){
                        args['complete']();
                    }
                }
            }
        };

        // 把args中的參數(shù)放到params中去
        for(var key in args){
            params[key] = args[key];
        }
        var uploader = Qiniu.uploader(params);
        return uploader;
    }
};

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子苏携,更是在濱河造成了極大的恐慌,老刑警劉巖娇掏,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桶雀,死亡現(xiàn)場離奇詭異,居然都是意外死亡改备,警方通過查閱死者的電腦和手機控漠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悬钳,“玉大人盐捷,你說我怎么就攤上這事∧矗” “怎么了碉渡?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灾测。 經(jīng)常有香客問我爆价,道長,這世上最難降的妖魔是什么媳搪? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任铭段,我火速辦了婚禮,結(jié)果婚禮上秦爆,老公的妹妹穿的比我還像新娘序愚。我一直安慰自己,他們只是感情好等限,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布爸吮。 她就那樣靜靜地躺著,像睡著了一般望门。 火紅的嫁衣襯著肌膚如雪形娇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天筹误,我揣著相機與錄音桐早,去河邊找鬼。 笑死厨剪,一個胖子當著我的面吹牛哄酝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播祷膳,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼陶衅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了直晨?” 一聲冷哼從身側(cè)響起搀军,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤膨俐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后罩句,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吟策,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年的止,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片着撩。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡诅福,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拖叙,到底是詐尸還是另有隱情氓润,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布薯鳍,位于F島的核電站咖气,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏挖滤。R本人自食惡果不足惜崩溪,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望斩松。 院中可真熱鬧伶唯,春花似錦、人聲如沸惧盹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钧椰。三九已至粹断,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嫡霞,已是汗流浹背瓶埋。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秒际,地道東北人悬赏。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像娄徊,于是被迫代替她去往敵國和親闽颇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容