예제 #1
0
파일: views.py 프로젝트: v2up/queyue
def profile_handler(form, insti, req):
    insti.name = form.name.data
    insti.intro = form.intro.data
    logo = request.files.get('logo')
    if not (logo.filename is None or logo.filename == ''):
        logo_upload = UploadSet('logos', ('jpg', 'png'))
        configure_uploads(current_app, (logo_upload))
        try:
            filename = logo_upload.save(logo)
            logo_url = logo_upload.url(filename)
            insti.logo_url = logo_url
        except UploadNotAllowed:
            return (False, '上传LOGO时出错')
    poster = request.files.get('poster')
    if not (poster.filename is None or poster.filename == ''):
        poster_upload = UploadSet('posters', ('jpg', 'png'))
        configure_uploads(current_app, (poster_upload))
        try:
            filename = poster_upload.save(poster)
            poster_url = poster_upload.url(filename)
            insti.poster_url = poster_url
        except UploadNotAllowed:
            return (False, '上传海报时出错')
    db.session.add(insti)
    return (True, '资料更新成功')
예제 #2
0
class UploadManager(object):
    def __init__(self, app):
        self.videos = UploadSet('videos', (
            'mp4',
            'webm',
            'wmv',
            'avi',
            'mov',
        ))
        self.images = UploadSet('images', ('jpeg', ))
        configure_uploads(app, (
            self.videos,
            self.images,
        ))

    def save_image(self, image):
        filename = self.images.save(image)
        return {
            'url': self.images.url(filename),
            'path': self.images.path(filename)
        }

    def save_video(self, video):
        filename = self.videos.save(video)
        return filename

    def lookup_video(self, filename):
        url = self.videos.url(filename)
        path = self.videos.path(filename)
        return url, path
예제 #3
0
파일: views.py 프로젝트: v2up/queyue
def member_edit():
    edit_form = EditForm()
    if request.method == 'POST' and edit_form.validate_on_submit():
        user = User.query.get(current_user.id)
        user.name = edit_form.username.data
        avatar = request.files.get('avatar')
        # print(avatar)   # <FileStorage: '' ('application/octet-stream')>
        # print(avatar.filename)
        if avatar.filename is not None:  # and avatar.filename!=''
            avatar_upload = UploadSet(name='avatars',
                                      extensions=('jpg', 'jpeg', 'png', 'bmp'))
            configure_uploads(current_app, (avatar_upload))  #加载上传集配置
            try:
                filename = avatar_upload.save(avatar)
                # avatar_upload.resolve_conflict(avatar_upload, fname)  #解决可能存在的文件名冲突问题
                user.avatar_url = avatar_upload.url(filename)
            except UploadNotAllowed:
                pass
        else:
            flash('头像上传失败', 'alert-warning')
        portrait = request.files.get('portrait')
        if portrait.filename is not None:
            portrait_upload = UploadSet(name='portraits',
                                        extensions=('jpg', 'jpeg', 'png',
                                                    'bmp'))
            configure_uploads(current_app, (portrait_upload))  #加载上传集配置
            try:
                filename = portrait_upload.save(portrait)
                # portrait_upload.resolve_conflict(portrait_upload, fname)  #解决可能存在的文件名冲突问题
                user.portrait_url = portrait_upload.url(filename)
            except UploadNotAllowed:
                pass
        else:
            flash('半身像上传失败', 'alert-warning')
        user.signature = edit_form.signature.data
        user.intro = edit_form.intro.data
        password = edit_form.password.data
        if password is not None and password != '':  #更改密码
            if user.verify_password(edit_form.old_password.data):
                if len(password) > 6 and len(password) < 24:
                    if password == edit_form.password2.data:
                        user.password = password
                        flash('密码更改成功!', 'alert-success')
                    else:
                        flash('两次密码输入不一致,密码未更改', 'alert-warning')
                else:
                    flash('密码长度必须 6-24 位,密码未更改', 'alert-warning')
            else:
                flash('当前密码错误,密码未更改', 'alert-danger')
        db.session.add(user)
        flash('个人资料更新成功!', 'alert-success')
        return redirect(url_for('member.member_page', userid=user.id))
    edit_form.username.data = current_user.name
    edit_form.signature.data = current_user.signature
    edit_form.intro.data = current_user.intro
    return render_template('member/edit.html', form=edit_form)
예제 #4
0
파일: views.py 프로젝트: v2up/queyue
def edit_event(uurl, eid):
    event = Event.query.get_or_404(int(eid))
    edit_form = EditForm()
    if request.method == 'POST' and edit_form.validate_on_submit():
        event.detail = edit_form.detail.data
        poster = request.files.get('poster')
        if poster.filename is not None:
            poster_upload = UploadSet(name='posters',
                                      extensions=('jpg', 'jpeg', 'png', 'bmp'))
            configure_uploads(current_app, (poster_upload))  #加载上传集配置
            try:
                filename = poster_upload.save(poster)
                event.poster_url = poster_upload.url(filename)
            except UploadNotAllowed:
                pass
        else:
            flash('海报上传失败……', 'alert-warning')
        db.session.add(event)
        flash('更新成功', 'alert-success')
        return redirect(url_for('event.event_page', eid=event.id))
    edit_form.detail.data = event.detail
    return render_template('institution/event_edit.html',
                           insti=current_insti(),
                           event=event,
                           edit_form=edit_form)
예제 #5
0
파일: api.py 프로젝트: sunghoonma/Dream
    def post(self):
        if 'photo' in request.files:
            upload_type = 'photo'

            upload_files = UploadSet('photos',IMAGES)
            configure_uploads(app, upload_files)

            filename = upload_files.save(request.files[upload_type])
            splits = []
            for item in filename.split('.'):
                splits.append(item)
            extension = filename.split('.')[len(splits) - 1]
        else:
            return {'status':'error',
                    'description':'No attached Files'}, 400

        f = File(filename=filename, user_id=g.user.id, extension=extension, type=upload_type)
        try:
            db.session.add(f)
            db.session.commit()
        except:
            return {'status':'error',
                    'description':'Something went wrong'}, 500

        return {'status':'success',
                'description':'Upload Succeeded',
                'data':{'id':f.id,
                        'url':upload_files.url(f.name)}}, 201
예제 #6
0
def group_new():
    group_form = GroupForm()
    if request.method == 'POST' and group_form.validate_on_submit():
        name = group_form.name.data
        intro = group_form.intro.data
        icon = request.files.get('icon')
        if not (icon is None or icon == ''):
            icon_upload = UploadSet('icons', ('jpg', 'png'))
            configure_uploads(current_app, (icon_upload))
            try:
                filename = icon_upload.save(icon)
                icon_url = icon_upload.url(filename)  #得到icon的URL
            except UploadNotAllowed:
                flash('请上传小组图标', 'alert-danger')
                return render_template('group/new.html', form=group_form)
        else:
            flash('小组图标没上传', 'alert-danger')
            return render_template('group/new.html', form=group_form)

        group = Group(name=name,
                      icon_url=icon_url,
                      intro=intro,
                      owner_id=current_user.id)  #_get_current_object()
        db.session.add(group)
        flash('新建小组 %s 成功!' % name, 'alert-success')
        return redirect(url_for('group.group_index'))
    return render_template('group/new.html', form=group_form)
예제 #7
0
class UploadManager(object):
    def __init__(self, app):
        self.videos = UploadSet('videos', ('mp4','webm','wmv','avi','mov',))
        self.images = UploadSet('images', ('jpeg',))
        configure_uploads(app, (self.videos,self.images,))

    def save_image(self, image):
        filename = self.images.save(image)
        return {
            'url': self.images.url(filename),
            'path': self.images.path(filename)
        }

    def save_video(self, video):
        filename = self.videos.save(video)
        return filename

    def lookup_video(self, filename):
        url = self.videos.url(filename)
        path = self.videos.path(filename)
        return url, path