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, '资料更新成功')
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
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)
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)
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
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)
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