thinkpHP 는 ajax 비동기 로 그림 을 업로드 하고 표시,삭제 하 는 예제 입 니 다.

최근 tp5 를 공부 하 는 과정 에서 프로젝트 에 포 스 팅 기능 이 있어 테마 그림 을 선택 합 니 다.다음 과 같다.

원본 파일 업로드 처 리 를 이용 하여 원본 js 문 구 를 통 해 업로드 사진 을 실시 간 으로 표시 할 수 있 지만 이렇게 하면 많은 호 환 문제 가 발생 할 수 있 습 니 다.ajax 기술 을 사용 하여 선택 한 그림 을 선택 적 으로 삭제 하 는 기능 을 실현 합 니 다.호 환 문제 가 없습니다.
폼 파일 form:

<form method="post" enctype="multipart/form-data">
<div style="margin: 20px 20px 20px 10px;">
      :
  <span id="img-list-box" style="margin-left: 25px;"></span>
  <span style="display:inline-block;height: 30px;position: relative;top:0px;left:0px;">
    <a style="display: inline-block;width: 100px;height:30px;line-height: 30px;text-align:center;background: #F60;color: #FFF;">    </a>
    <input type="file" name="img_src" style="width: 100px;border: 1px solid red;position: absolute;top:0px;left: 0px;height: 30px;opacity: 0;" id="up-img-file" onchange="upimg(this)">
   </span>
</div>
</form>
Ajax 요청 을 보 내야 합 니 다.물론 폼 은 우리 의 요 구 를 실현 할 수 없습니다.따라서 폼 에 이 벤트 를 누 르 면 Ajax 요청 을 하고 그림 을 선택 할 수 있 습 니 다.
우리 가 사진 업로드 버튼 을 눌 렀 을 때 선택 한 그림 을 터치 하여 Ajax 업 로드 를 실현 합 니 다.
JavaScript 코드:

<script type="text/javascript" src="__STATIC__/home/js/jquery.min.js"></script>
<script type="text/javascript">
  function upimg(obj)
  {
    if( obj.value == "" ) {
      return;
    }
    var formdata = new FormData();
    //<input type="file" name="img" value="" />
    formdata.append("img" , $(obj)[0].files[0]);//      
    $.ajax({
      type : 'post',
      url : '/home/note/upimg', //  
      data : formdata,
      cache : false,
      processData : false, //         ,  data  Formdata  ,         
      contentType : false, //    Content-type   
      success : function(response){
        console.log(response);
        var html = '<div style="position: relative;margin-right: 20px;margin-bottom: 15px;width: 132px;display: inline-block;border: 1px solid #CCC;background:#EEE;">'
            +'<span style="display: block;width: 120px;height: 80px;border: 1px solid #F2F1F0;margin: 5px;overflow: hidden;">'
            +'<img src="'+response+'" style="width: 100%;" />'
            +'</span>'
            +'<input type="hidden" name="imgs[]" value="'+response+'" />'
            +'<a onclick="delImg(this);" style="z-index: 10;display: block;top: -8px;cursor:pointer;right: -8px;position:absolute;width: 20px;height: 20px;background: #CCC;border-radius:100%;text-align:center;line-height: 20px;border: 1px solid #C1C1C1;color: #555;">X</a>'
            +'</div>';

        $('#img-list-box').append(html);
      },
      error : function(){ }
    });
  }

  function delImg(obj)
  {
    $(obj).parent('div').remove();
  }
</script>
그림 선택 을 누 르 면 서버 에 맡 깁 니 다.
php 인터페이스 파일:

  public function upimg()
  {
    //  
    $file = request()->file('img');
    //           /public/uploads/    
    if($file){
      $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
      if($info){
        //             
        $img_src = '/uploads/'.$info->getSaveName();
        echo $img_src; //  ajax  
      }else{
        //           
        $this->error($file->getError());
      }
    }
  }
개 선 된 효과 도:

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기