首页 > Web开发 > 详细

django上传图片到oss

时间:2019-11-14 19:18:04      阅读:389      评论:0      收藏:0      [点我收藏+]
引入webuploader的css和js 
<link rel="stylesheet" type="text/css" href="{% static ‘webuploader/webuploader.css‘ %}"/>

<script type="text/javascript" src="{% static ‘webuploader/webuploader.js‘ %}"></script>


{#上传图片到阿里云oss#}
<div id="filePicker1">
<img width="150px" id="logoimg" src="{% static ‘img/1573301808.399324th (1).jpg‘ %}"> #图片预览
<input type="hidden" id="logopalce" name="logo">
</div>
<div id="filePicker">上传图片</div>
<script>
    var uploader = WebUploader.create({
        // 选完文件后,是否自动上传。
        auto: true,

        // swf文件路径
        swf: {% static "webuploader / Uploader.swf" %},

        // 文件接收服务端。
        server: {% url "uploadimg" %},

        // 选择文件的按钮。可选。
        // 内部根据当前运行是创建,可能是input元素,也可能是flash.
        pick: #filePicker, #通过id控制

        // 只允许选择图片文件。
        accept: {
            title: Images,
            extensions: gif,jpg,jpeg,bmp,png,
            mimeTypes: image/*
        }
    });
    uploader.on(uploadSuccess, function (file, response) {
        $(#logoimg).attr(src, response._raw);
        $(#logopalce).val(response._raw);
    });
</script>

 

import time,random
from django.views.decorators.csrf import csrf_exempt
#from app01.ali_oss import oss_func
@csrf_exempt
def uploadimg(request):
    if request.method == POST:
        year = time.strftime(%Y, time.localtime(int(time.time())))
        month = time.strftime(%m, time.localtime(int(time.time())))
        day = time.strftime(%d, time.localtime(int(time.time())))
        try:
            path = "article/" + year + / + month + / + day + /
            f = request.FILES.get(file)
            file_name = path + str(random.randint(1000000, 9999999)) + str(int(time.time())) + f.name
            from urllib.request import urljoin
            oss_func(fileobj=f.read(), filepath=file_name)
            file_name = urljoin(http://hehe-warehouse.oss-cn-beijing.aliyuncs.com, file_name)
        except Exception as e:
            file_name = ‘‘
            print(e)
        print(file_name)
        return HttpResponse(file_name,filename)
    else:
        return HttpResponse(‘‘)
import oss2 #需要安装pip install oss2
def oss_func(fileobj, filepath):
# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth(‘LTAI4FnrcAKsmddxnGnD9kor‘, ‘JtlyVYWIykJ2oGkpdv3n9o2Oqxs8na‘)#绿色的换成自己的AccessKey和仓库名字

# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, ‘http://oss-cn-beijing.aliyuncs.com/‘, ‘hehe-warehouse‘)
return bucket.put_object(filepath, fileobj)

 

 

django上传图片到oss

原文:https://www.cnblogs.com/wuyonghe/p/11859068.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!