def upload(): f = request.files.get('upload') # 获取上传图片文件对象 extension = f.filename.split('.')[1].lower() if extension not in ['jpg', 'gif', 'png', 'jpeg']: # 验证文件类型示例 return upload_fail(message='只能上传图片!') # 返回upload_fail调用 filename = uuid.uuid4().hex + '.' + extension if os.path.exists(os.path.join(current_app.config['UPLOAD_PATH'], filename)): filename = rename_image(filename) f.save(os.path.join(current_app.config['UPLOAD_PATH'], filename)) resize_image(request.files['upload'], filename, current_app.config['PHOTO_SIZE']['medium']) url = url_for('.get_file', filename=filename) return upload_success(url, filename) # 返回upload_success调用
def upload(item_id): item = Item.query.get_or_404(item_id) form = UploadForm() if form.validate_on_submit(): if item.photo: db.session.delete(item.photo) db.session.commit() f = form.photo.data filename = rename_image(f.filename) f.save(os.path.join(current_app.config['TECON_PATH'], filename)) filename_s = resize_image(f, filename, current_app.config['PHOTO_SIZE']['small']) photo = Photo(filename=filename, filename_s=filename_s, item_id=item_id) db.session.add(photo) db.session.commit() flash('图片已上传', 'success') return redirect(url_for('.show_item', item_id=item_id)) return render_template('tecon/upload.html', item=item, form=form)
def upload_post(post_id): post = Post.query.get_or_404(post_id) if current_user != post.author and current_user != post.topic.group.admin and not current_user.can( 'MODERATE'): abort(403) if request.method == 'POST' and 'file' in request.files: f = request.files.get('file') filename = f.filename if os.path.exists( os.path.join(current_app.config['UPLOAD_PATH'], filename)): filename = rename_image(filename) f.save(os.path.join(current_app.config['UPLOAD_PATH'], filename)) filename_s = None if filename.rsplit( '.', 1)[1] in ['jpg', 'png', 'jpeg', 'gif', 'PNG', 'bmp']: filename_s = resize_image( request.files['file'], filename, current_app.config['PHOTO_SIZE']['small']) file = File(filename=filename, filename_s=filename_s, post_id=post_id) db.session.add(file) db.session.commit() return render_template('main/upload_post.html', post=post)