Пример #1
0
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调用
Пример #2
0
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)
Пример #3
0
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)