<div class="warp">
      <input type="file" id="file"  accept="image/*" onchange="upimg(this)" />
 </div>
<img src="" />
<script&gt;
    //上传图片方法
     function upimg(obj){
         var fileData = obj.files[0];//这是我们上传文件
         console.log(fileData)
         var formData = new FormData();
         // 服务端要求参数pic1
         formData.append('image',fileData);
         $.ajax({
             url:"{:url('user/upmemberphoto')}",
             type:'post',
             data:formData,
             cache: false, //上传文件需要缓存
             processData: false, // 告诉jQuery不要去处理发送数据
             contentType: false, // 告诉jQuery不要去设置Content-Type请求
             success:function(data){
                 console.log(data);
                 // 设置图片预览功能
                 $('.head-img').attr('src',data.picAddr);
             }
         })
     }
</script>

thinkphp压缩图片插件官方地址
使用Composer安装ThinkPHP5的图像处理类库:

composer require topthink/thinkimage

    //上传会员照片接口
    public function upmemberphoto(){
        // 获取上传文件
        $file =  request()->file('image');


        $url=ROOT_PATH.'/public/uploads/member';

        // 移动本地服务器==这个是保存原图
        $info = $file->move($url);

        if ($info) {
            $tempstr=$info->getSaveName();
            $tempstr=str_replace("\","/",$tempstr);

            $imgurl=$url.'/'.$tempstr;

            // 按照原图的比例生成一个最大为320*320的缩略图保存为thumb.png==这个是压缩保存
            $image = thinkImage::open($imgurl);
            $image->thumb(320,320)->save($imgurl);

            return ['code' => 200, 'message' =>'上传成功','data'=>'/uploads/member/'.$tempstr];
        } else {
            // 文件上传失败
            return ['code' => 400, 'message' => '上传失败'];
        }
    }

另外一种方法传递base64图片提交图片数据字符串

<img id="memberHeadimg" src="" alt=""/>
<input  type="file" id="imgopipt" accept="image/*"  onchange="getBase64(event)"  />
<input type="hidden" id="photo" name="photo"/>
    //上传图片获取base64
    function getBase64(e){
        // 选择的文件
        let file = e.target.files[0];
        console.log(file.name) // 文件名称,有需求处理
        console.log(file.type) // 文件类型,有需求处理
        // 判断文件是否读取完毕,读取完毕后执行
        if (window.FileReader) {
            let reader = new FileReader();
            reader.readAsDataURL(file);
            reader.onload = function(e) {
                let base64String = e.target.result;
                // 此处可对该base64进行获取赋值传入后端
                console.log("bese64编码:", base64String);
                $("#photo").val(base64String)
                $("#memberHeadimg").attr('src',base64String)
            }
        }
    }

原文地址:https://blog.csdn.net/qq_21810059/article/details/133555819

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_26604.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注