编程题:在h5端和微信小程序端,通过编程实现访问后端的http://localhost:9000/mvc/upload的接口,其中图片服务器的路径为http://localhost:9000/image,实现图片上传的功能,请写出js api中的核心代码
时间: 2023-06-03 15:06:24 浏览: 196
下面是h5和微信小程序端分别实现图片上传的核心代码,其中涉及的接口地址和图片服务器路径需要根据实际情况进行调整:
H5端:
```
// 获取上传图片的表单元素
var fileInput = document.getElementById('fileInput');
// 监听表单元素的change事件
fileInput.addEventListener('change', function () {
// 创建FormData对象,用于上传文件和其他参数
var formData = new FormData();
// 添加文件元素到FormData对象中
formData.append('file', this.files[0]);
// 发送POST请求到后端的接口地址
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:9000/mvc/upload');
xhr.onreadystatechange = function () {
// 处理响应结果
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
// 设置上传的请求头信息
xhr.setRequestHeader('content-type', 'multipart/form-data');
// 发送FormData对象到后端
xhr.send(formData);
});
```
微信小程序端:
```
// 获取上传图片的按钮元素
var uploadButton = document.getElementById('uploadButton');
// 监听按钮元素的tap事件
uploadButton.addEvetListener('tap', function () {
// 选择图片
wx.chooseImage({
success: function (res) {
// 创建上传任务
var uploadTask = wx.uploadFile({
url: 'http://localhost:9000/mvc/upload',
filePath: res.tempFilePaths[0],
name: 'file',
// 设置请求头信息,其中'content-type': 'multipart/form-data'必须设置
header: {
'content-type': 'multipart/form-data'
},
// 附加参数
formData: {
'serverUrl': 'http://localhost:9000/image'
},
success: function (res) {
console.log(res.data);
}
});
uploadTask.onProgressUpdate(function (res) {
console.log('上传进度:' + res.progress + '%');
});
}
});
});
```
以上代码仅供参考,具体实现需根据实际情况进行调整。
阅读全文