将图像文件上传到服务器给定的网址

时间:2017-07-07 01:30:46

标签: ajax image url flask upload

我想知道是否可以使用ajax将图像上传到request.files中的烧瓶服务器,方法是在表单中键入url。这是我目前的表单设置:

<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>

目前,预览网址图片按钮会将网址中的图片显示为一个,但是我实际上只是抓住了src并在点击上传图片按钮时将其上传。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

如果用户指定了URL,那么让服务器从指定的URL本身(在后端)下载图像可能更有意义,而不是试图让网页下载并直接发送图像。 / p>

这是一个粗略的(未经测试的)视图函数,它显示了您的代码可能最终看起来像:

@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

的帮助下