ajax上传文件,通过FromData把数据传给后端

前端代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>添加商品</title>
</head>
<body>
    <form>
        <!-- <p><label for="">选择分类</label><input type="text" name="typeid" id="typeid" ></p> -->
        <p>
            <select name="typeid" id="">
                <option value="1">手机</option>
                <option value="2">笔记本</option>
            </select>
        </p>
        <p><label for="">商品名称</label><input type="text" name="name"></p>
        <p><label for="">价格</label><input type="text" name="price"></p>
        <p><label for="">库存</label><input type="text" name="stock"></p>
        <p><label for="">图片</label><input type="file" name="img"></p>
        <p><textarea name="desc" id="" cols="30" rows="10"></textarea></p>
        <button>提交</button>
    </form>
</body>
<script src="../../lib/jquery/dist/jquery.min.js"></script>
<script src="../Include/js/add.js"></script>
<script>

$('form').submit(function (e) {
            var formData = new FormData(this);
            $.ajax({
                url:"../Controller/add.php",
                type:"post",
                data:formData,
                processData:false,
                contentType:false,
                success:function(res){
                    console.log(res);
                }
            })
            e.preventDefault();

        })
</script>
</html>

后端代码
var formData = new FormData(this);
把 formData 传给后端, 数据和文件都是通过表单标签的 name 属性值获取
1. 接收表单文本数据
$typeid = $_POST[‘typeid’];
2. 接收文件
$_FILES[‘img’]

<?php

    // 数据库连接信息
    header("content-type:text/html; charset=utf-8");
    $servername = "localhost";
    $username = "root";
    $password = "123456";
    $dbname = "emall";
    
    // 1. 获取表单传来的数据
    $typeid = $_POST['typeid'];
    $name = $_POST['name'];
    $price = $_POST['price'];
    $stock = $_POST['stock'];
    $desc = $_POST['desc'];
    

    // 2. 上传图片
    // 文件前缀
    $prefix = 'goods_';

    // 获取文件后缀
    $temp = explode('.', $_FILES['img']['name']);  // 切割字符串
    $suffix = end($temp);  // 返回数组最后一个元素

    // 文件名
    $img = $prefix . uniqid().'.'.$suffix;
    // 移动文件
    move_uploaded_file($_FILES['img']['tmp_name'],'../../public/images/goods/'. $img);

    $arr = ['typeid' => $typeid,'name' => $name, 'price' => $price,'stock' => $stock, 'img' => $img,'desc'=>$desc];
    print_r(json_encode($arr));

    // 3. 把数据上传到数据库

    // 3.1 连接数据库
    $link = mysqli_connect('localhost', 'root', '123456', 'mall');

    // 3.2 操作
    $sqlInsert = "INSERT INTO `goods` VALUES(NULL,$typeid, '$name', $price, $stock, '$img','$desc')";
    // 解决插入数据中文乱码
    mysqli_query($link, "set names utf8");
    $res = mysqli_query($link, $sqlInsert);
    if($res){
        echo "成功";
    } else {
        echo "失败";
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值