flask----jquery+ajax上传文件

flask+jquery+ajax上传文件

  • html

    <form id="form1" action="/upload_file" enctype='multipart/form-data' method='POST'>
        <input id="upload_file" type="file" name="file">
        <label id="filename"></label>
    </form>
    <button onclick="uploadFile()">上传</button>
    
  • js

    $("#upload_file").change(function () {
        var arrs = $(this).val().split('\\');
        var filename = arrs[arrs.length - 1];
        console.log($(this).val())
        $("#filename").html(filename);
    });
    
    function uploadFile() {
        var formData = new FormData($("#form1")[0])
        $.ajax({
            url: "/upload_file",
            type: 'post',
            async:true,
            cashe:false,
            processData: false,
            contentType: false,
            data: formData,
            success: function (data) {
                console.log(data.data)
            }
        })
    }
    
  • flask

    @app.route("/upload_file", methods=["GET", "POST"])
    def upload_file():
        file = request.files['file']
        file_name = file.filename
        basepath = os.path.dirname(__file__)  # 当前文件所在路径
        upload_path = os.path.join(basepath, 'static', file_name)  
        file.save(upload_path)
        return jsonify({"status": 200, "data": "上传成功"})
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要在 Python 中安装 Flask 或 Django 等 Web 框架来处理 HTTP 请求。以 Flask 为例,以下是一个简单的示例: ```python from flask import Flask, request app = Flask(__name__) @app.route('/post', methods=['POST']) def post(): data = request.json # 处理数据 return 'success' if __name__ == '__main__': app.run() ``` 在这个示例中,我们创建了一个名为 app 的 Flask 实例,并定义了一个 /post 的路由,该路由只接受 POST 请求。当有 POST 请求到达时,Flask 将自动解析请求体中的 JSON 数据,并将其作为 python 字典类型存储在 request.json 中。我们可以在 post() 函数中访问这个字典,从而对数据进行处理。最后,将 'success' 字符串作为响应返回。 在前端部分,可以使用 jQuery 的 $.ajax() 方法来发送 POST 请求,如下所示: ```javascript $.ajax({ url: '/post', type: 'POST', contentType: 'application/json', data: JSON.stringify({key1: 'value1', key2: 'value2'}), success: function(response) { console.log(response); }, error: function(jqXHR, textStatus, errorThrown) { console.log(textStatus, errorThrown); } }); ``` 在这个示例中,我们将请求的 URL 设置为 /post,请求类型设置为 POST,并将请求的数据设置为一个包含 key1 和 key2 两个字段的 JSON 对象。注意,我们还需要将 contentType 设置为 application/json,以便告诉服务器发送的数据是 JSON 格式。如果请求成功,控制台将打印 'success';否则,将打印请求失败的错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值