이번에는 Axios에서 업로드된 이미지에 진행률 표시줄을 추가하는 방법을 보여드리겠습니다. 업로드된 이미지에 진행률 표시줄을 추가하는 Axios의 주의사항은 무엇인가요?
Axios는 브라우저와 node.js에서 사용할 수 있는 Promise 기반 HTTP 라이브러리입니다.
특징
브라우저에서 XMLHttpRequest 생성
node.js
에서 http 요청 생성 Promise API
지원 요청 및 응답 가로채기
요청 데이터와 응답 데이터 변환
요청 취소
JSON 데이터를 자동으로 변환
클라이언트는 XSRF
에 대한 방어를 지원합니다. 다음은 Axios를 사용하여 이미지 업로드 진행률 표시줄 기능을 구현하는 방법을 소개합니다.
최근 프로젝트에서는 휴대폰 페이지에 최대 수십 장의 사진을 업로드해야 하는데, 사진이 압축되어 있지만 결국 네트워크 카드를 사용하면 업로드 시간이 매우 길어집니다. 업로드 진행 상황을 보다 직관적으로 표시하려면 진행률 표시줄과 업로드 비율을 표시하는 것이 가장 좋습니다. 프로젝트는 vuejs 프레임워크인 mint-ui를 UI 프레임워크로 사용합니다. 요청은 vue에서 공식적으로 권장하는 것입니다(정말 강력함). axios는 공식적으로 기본 업로드 처리 진행
events 사용을 소개합니다. 자세한 내용은 여기를 참조하세요. 중국 Axios 공식 소개): onUploadProgress: function (progressEvent) {
// 对原生进度事件的处理
},
가 있습니다. 이미지 업로드에 필요한 매개변수는 첫 번째 콜백 함수는 업로드 진행 상황에 포함된 데이터를 가져오는 것이고, 두 번째 콜백 함수는 업로드 성공 또는 실패 시 백그라운드에서 반환된 데이터를 가져와 다음 단계를 수행하는 것입니다. 페이지 작업. rreee mint-ui 컴포넌트의 Progress 컴포넌트를 사용하고 데이터 메소드의 컴포넌트에 "precent" 변수를 정의할 때 주의하세요. reqwest.js 파일을 가져오고 uploadPhoto 메서드를 가져온 다음 $nextTick 속성을 사용하여 업로드 진행 상황에 따라 실시간으로 페이지를 업데이트합니다.
uploadPhoto(payload,callback1,callback2){ axios({ url:BASE_URL + '/handler/material/upload', method:'post', onUploadProgress:function(progressEvent){ //原生获取上传进度的事件 if(progressEvent.lengthComputable){ //属性lengthComputable主要表明总共需要完成的工作量和已经完成的工作是否可以被测量 //如果lengthComputable为false,就获取不到progressEvent.total和progressEvent.loaded callback1(progressEvent); } }, data:payload }).then(res =>{ callback2(res.data); }).then(error =>{ console.log(error) }) }
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 자료:
JS의 JSON 데이터 그룹화를 최적화하는 방법ajax는 상태를 직접 변경하고 새로 고침되지 않은 상태를 삭제합니다
위 내용은 Axios에 이미지를 업로드하기 위해 진행률 표시줄을 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!