【问题标题】:Upload an image file to server given URL将图像文件上传到服务器给定的 URL
【发布时间】:2017-12-11 04:29:13
【问题描述】:

我想知道是否可以通过表单输入 url 来使用 ajax 将图像上传到 request.files 中的烧瓶服务器。这是我当前的表单设置:

<form method=post enctype=multipart/form-data runat="server" id="capture_form">
<div class="form-group">
        <label for=facesURL>URL:</label>
        <input type="text" name="image_url" class="form-control" id=facesURL placeholder="URL of image">
        <input type="submit" value="Preview URL image" id="submit">
</div>
<button align="center" class="btn btn-info upload-image" id=upload-image type=submit value="Upload Image">Upload File</button>

目前,预览 URL 图片按钮将图片从 url 显示为 .任何帮助表示赞赏。

【问题讨论】:

    标签: ajax image url flask upload


    【解决方案1】:

    如果用户指定一个 URL,让服务器从指定的 URL 本身(在后端)下载图像可能比尝试让网页下载并直接发送图像更有意义。

    这是一个粗略(未经测试)的视图函数,它显示了您的代码最终可能会是什么样子:

    @app.route('/submit_image', methods=['GET', 'POST'])
    def submit_image():
        # I'm assuming you're using the Flask-WTF module for your forms
        form = SubmitImageForm()
        if request.method == 'GET':
            return render_template('submit_image.html', form=form)
        elif request.method == 'POST':
            if form.validate_on_submit():
                path_to_save_image_to = ''  # Fill this in
    
                with open(path_to_save_image_to,'wb') as f:
                    f.write(urllib.request.urlopen(form.image_url.data, path_to_save_to).read())
    
                return redirect(url_for('submission_successful'))
            else:
                return render_template('submit_image.html', form=form, error="Invalid submission")
    

    在以下人员的帮助下:Downloading a picture via urllib and python

    【讨论】:

    • 我不确定 Flask_WTF 模块是什么,我现在只是通过 html 发送文件。那么如果使用这个 SubmitImageForm 函数,form.image_url.data 是否会包含 request.files['file'] 的等价物?
    • SubmitImageForm 实际上是用户定义的类,而不是函数。你可以在使用 flask_wtf 时创建这样的类。 I believe 相当于 form.image_url.data 在不使用 flask_wtf 时将是 request.form['image_url'],假设您将字段命名为“image_url”。
    猜你喜欢
    • 2016-06-06
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-26
    • 2010-12-28
    • 1970-01-01
    相关资源
    最近更新 更多