您的位置 首页 php

含文件上传的form表单AJAX提交小结

最近在学习PHP时,遇到不知道如何含文件上传的form表单 AJAX 提交,现在把这些记录下来以备自己后续复习时用:

HTML代码

 	<form method="POST" class="form form-horizontal" enctype="multipart/form-data" id='editinfo'>
				<input type="hidden" value="{$list.id}" name='id'>
				<div class="row cl">
					<label class="form-label col-xs-4 col-sm-3"><span class="c-red"></span></label>
					<div class="formControls col-xs-8 col-sm-9"><img src='{$list.faceimage}' width="120px"
							height="160px" id='faceimage'>
					</div>

				</div>
				<div class="row cl">
					<label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>姓名:</label>
					<div class="formControls col-xs-8 col-sm-9">
						<input type="text" class="edit_input-text" value="{$list.name}" placeholder="" id="name"
							name="name" style="width:400px;height:25px">
					</div>
				</div>

				<div class="row cl">
					<label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>性别:</label>
					<div class="formControls col-xs-8 col-sm-9 skin-minimal">
						<select class="select" name="sex" size="1" style="width:400px;height:30px">
							{eq name='list.sex' value='男'}

							<option value="男" selected>男</option>
							<option value="女">女</option>
							{else /}
							<option value="男">男</option>
							<option value="女" selected>女</option>
							{/eq}
						</select>
					</div>
				</div>
				<div class="row cl">
					<label class="form-label col-xs-4 col-sm-3"><span class="c-red"></span>所教班级</label>
					<div class="formControls col-xs-8 col-sm-9">
						{volist name='classlist' id='vo'}
						{in name='$vo.name' value='$list.class'}
						<input type="checkbox" value="{$vo.name}" name='class[]' checked>{$vo.name}
						{else /}
						<input type="checkbox" value="{$vo.name}" name='class[]'>{$vo.name}
						{/in}
						{/volist}

					</div>
				</div>
				<div class="row cl">
					<label class="form-label col-xs-4 col-sm-3"><span class="c-red"></span>上传头像</label>
					<div class="formControls col-xs-8 col-sm-9">

						<input type=" file " name='faceimage' accept="image/jpeg,image/png">

					</div>
				</div>
				<div class="row cl">
					<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
						<input class="btn btn-primary radius" type="button" value="  提交  "
							id='button'>
					</div>
				</div>
			</form>  

script部分

 <script>
		$(function () {
			$('#button').on('click', function () {
				var data=new FormData(document.getElementById("editinfo"));

				$.ajax({
					type: "POST",  //提交的类型是POST
					url: "{:url('editUserOperation')}",
					data: data,   //FormData 序列化 不能用serialize()序列化,不然不能传递file,
					dataType: "json",  //数字类型JSON
					processData:false,
					contentType:false,
					success: function (data) {
						alert(data. message );
					}
				});
			})
		})

	</script>  

后台处理部分:

 public function editUserOperation( request  $request)
    {
        $this->isTeacherLogin();
        $data = $request->param(true);
  
        foreach ($data as $key => $value) {
            if ($key == "faceimage") {     //判断file的input有没有选择文件
                $file = request()->file('faceimage');
                $info = $file->move("../uploads/");
                $url = $info->getSaveName();   //文件上传后的路径和文件名
                $data[$key] = $url;
            }else{
                $data[$key] = $value;
            }
        }
        $ condition  = ['id' => $data['id']];
        $result = TeacherModel::update($data, $condition);
        if ($result == true) {
            return ['message' => "修改成功"];
        } else {
            return ['message' => "修改失败"];
        }
   return ['message' => "成功"];
    }  

这是我初学TP5.1学习资料,大神们勿喷!

文章来源:智云一二三科技

文章标题:含文件上传的form表单AJAX提交小结

文章地址:https://www.zhihuclub.com/80126.shtml

关于作者: 智云科技

热门文章

网站地图