飞凤互联 发表于 2024-12-9 00:10:28

php直接上传单张图片无缝上传 html+js+php 不用提交base64代码给后端直接地址

php直接上传单张图片无缝上传 html+js+php 不用提交base64代码给后端直接地址返给前端并且预览用base64

这个是我在做一个实名认证上传身份证照片优化的代码 分享出来给有需要的
html代码
<div class="form-group">
                                        <label class="col-md-12">身份证正面</label>
                                        <div class="col-md-6">
                                                <input type="hidden" name="user_card" id="user_card">
                                          <button type="button" class="btn btn-danger" id="upload"><i class="fa fa-photo"></i> 上传 </button>
                                          <div>注意:图片不能超过1.5M</div>
                                                                                </div>
                                                                                <imgid="preview" src="/static/images/nopic.png">
                                                                                <span id="preview_text">展示</span>
                                    </div> js代码
layui.use('upload', function(){
    var $ = layui.jquery;
    var upload = layui.upload;
   
    var uploadInst = upload.render({
      elem: '#upload', // 绑定上传按钮的ID
      url: '', // 替换为您的服务器上传接口的URL
       // data: {gongneng:"upload"},
      accept: 'images', // 允许上传的文件类型
      exts: 'jpg|png|gif|jpeg', // 允许上传的文件扩展名
      size: 1550, // 设置文件大小限制,单位为KB,这里设置为1.51MB
      before: function(obj){
            // 上传前预览图片
            obj.preview(function(index, file, result){
                $('#preview').attr('src', result).show(); // 设置预览图片的src属性,并显示图片
                // 不将Base64编码结果设置到hidden input中
            });
      },
      done: function(res){
            // 上传完成后的回调函数,res为服务器返回的响应
            if(res.code === 0){ // 根据您的服务器响应格式调整判断条件
                layer.msg('上传成功');
                // 假设服务器返回的文件路径在res.data.filePath中
                $('#user_card').val(res.filePath); // 将文件路径存储到hidden input中
            } else {
                layer.msg('上传失败,请重试');
            }
      },
      error: function(){
            // 上传出错时的回调函数
            layer.msg('上传出错,请检查网络或文件大小');
      }
    });
});php后端代码
if($a=="tupian"){
    $user_card = md5($user_id).".png"; //用了MD5加密
    $tmp = $_FILES["file"]['tmp_name'];
    $tp = "usercard/{$user_card}";
    if (move_uploaded_file($tmp, $tp)) {
      // 文件保存成功
      echo json_encode(array("code"=>0,"filePath"=>"$user_card","msg"=>"上传成功"));
    } else {
      // 文件保存失败
      $msg= $_FILES['file']['error'];
      echo json_encode(array("code"=>1,"filePath"=>"$user_card","msg"=>"$msg"));
    }
}

页: [1]
查看完整版本: php直接上传单张图片无缝上传 html+js+php 不用提交base64代码给后端直接地址