WeChat 공개 계정의 개발에는 일반적으로 모바일 공개 계정 프로그램에서 로컬 사진을 선택하거나 사진을 촬영하여 로컬 백엔드 서버에 업로드하는 기능이 포함됩니다. 온라인 방법은 일반적으로 WeChat에서 공식적으로 제공하는 chooseImage 메소드를 호출하는 것입니다. 그런 다음 android인지 ios인지, WKWebview 커널을 사용할지 여부를 판단하고, 최종적으로 반환값을 별도로 처리하여 base64로 인코딩된 데이터로 변환한 후 서버에 업로드합니다.
이 방법의 어려운 점은 시스템을 판단하고 WeChat에서 반환된 데이터를 base64로 인코딩한 다음 서버 측에서 base64 디코딩 로직을 작성해야 한다는 것입니다. 이 기사에서는 일반적인 접근 방식을 사용하지 않고 에 업로드합니다. 먼저 WeChat 서버. 그런 다음 백그라운드 서버가 WeChat 서버에서 다운로드하여 파일 서버에 저장합니다. 구체적인 코드는 다음과 같습니다.
1. 페이지
<input type="button" id="uploadBtn">
페이지에는 일반 버튼 업로드 버튼만 있습니다
2. JS logic
$('#uploadBtn').click(function () { wx.chooseImage({ count: 1, sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片 that.uploadImg(localIds[0]); } }); }); //具体上传图片 uploadImg: function (e) { wx.uploadImage({ localId: e, // 需要上传的图片的本地ID,由chooseImage接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { serverId = res.serverId; $.ajax({ url: "/uploadImg", dataType: "json", async: false, contentType: "application/x-www-form-urlencoded; charset=UTF-8", data: {"mediaId": serverId}, type: "POST", timeout: 30000, success: function (data, textStatus) { $('#imgUrl').val(data); $.toast('上传成功', 'text'); }, error: function (XMLHttpRequest, textStatus, errorThrown) { $.toast('上传错误,请稍候重试!', 'text'); } }); }, fail: function (error) { $.toast('上传错误,请稍候重试!', 'text'); } }); }
먼저 wx.chooseImage 메소드를 호출하여 이미지를 선택합니다. 그런 다음 결과를 호출하여 이미지 메소드 wx.uploadImage를 업로드하고 성공적인 업로드의 반환 값인 mediaId를 얻은 다음 우리가 작성한 서버 측 컨트롤러 메소드를 호출하여 ajax를 통해 mediaId를 제출한 다음 서버 측 코드를 호출합니다.
3. 서버측 처리 로직
/** * 获取临时素材 * * @param mediaId 媒体文件ID * @return 正确返回附件对象,否则返回null * @throws WeixinException */ public Attachment downloadMedia(String mediaId) throws WeixinException { //下载资源 String url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token=" + this.oauthToken.getAccess_token() + "&media_id=" + mediaId; //创建请求对象 HttpsClient http = new HttpsClient(); return http.downloadHttps(url); } 其中Attachment表示下载文件返回值对象,包含的属性有: public class Attachment { private String fileName; private String fullName; private String suffix; private String contentLength; private String contentType; private BufferedInputStream fileStream; private String error; 省略get/set方法 }
주로 BufferedInputStream 객체의 fileStream을 처리하는 downloadMedia 메소드를 호출한 후 Attachment 객체를 가져옵니다. 이 속성은 파일 스트림을 저장하는 방법이 많이 있습니다. Apache에서 제공하는 FileUtils 클래스를 사용하여 처리할 수 있습니다. 여기에는 특정 코드가 제공되지 않습니다. 인터넷에는 유사한 코드가 많이 있습니다. 지금까지 WeChat 공식 계정의 로컬 서버에 이미지를 성공적으로 업로드했습니다.
관련 권장사항:
PHP를 사용하여 로컬 서버 인스턴스 공유에 사진 다운로드
PHP를 사용하여 WeChat 서버에서 로컬 서버로 파일 다운로드
원격 사진을 로컬 서버에 저장하는 PHP용 구현 코드, _PHP 튜토리얼
위 내용은 JS 개발 WeChat 공개 계정은 로컬 서버에 사진을 업로드합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
