views.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:DjangoBlog 作者: liangliangyy 项目源码 文件源码
def fileupload(request):
    if request.method == 'POST':
        response = []
        for filename in request.FILES:
            timestr = datetime.datetime.now().strftime('%Y/%m/%d')
            imgextensions = ['jpg', 'png', 'jpeg', 'bmp']
            fname = u''.join(str(filename))

            isimage = len([i for i in imgextensions if fname.find(i) >= 0]) > 0

            basepath = r'/var/www/resource/{type}/{timestr}'.format(
                type='files' if not isimage else'image', timestr=timestr)
            if settings.TESTING:
                basepath = settings.BASE_DIR + '/uploads'
            url = 'https://resource.lylinux.net/{type}/{timestr}/{filename}'.format(
                type='files' if not isimage else'image', timestr=timestr, filename=filename)
            if not os.path.exists(basepath):
                os.makedirs(basepath)
            savepath = os.path.join(basepath, filename)
            with open(savepath, 'wb+') as wfile:
                for chunk in request.FILES[filename].chunks():
                    wfile.write(chunk)
            if isimage:
                from PIL import Image
                image = Image.open(savepath)
                image.save(savepath, quality=20, optimize=True)
            response.append(url)
        return HttpResponse(response)

    else:
        return HttpResponse("only for post")
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号