在uni-app中,上传文件主要使用的API是uni.uploadFile
。这个API允许客户端将本地资源上传到开发者服务器。uni.uploadFile
是一个异步的API,它会在文件上传完成后返回上传结果。
格式
uni.uploadFile
API的基本格式如下:
uni.uploadFile({ url: 'https://example.com/upload', // 仅为示例,替换为你的上传接口地址 filePath: tempFilePath, // 要上传文件资源的路径 (本地文件的临时路径,由 `uni.chooseImage` 或其他文件接口返回的临时文件路径) name: 'file', // 文件对应的 key, 开发者在服务器端通过这个 key 可以获取到文件数据 formData: { 'user': 'test' // 需要发送的表单数据,HTTP 请求中其他额外的 form data }, header: { 'content-type': 'multipart/form-data' // 默认值 // 'Authorization': 'xxx' // 如果需要设置请求的 header,请在这里设置 }, success: (uploadFileRes) => { console.log('uploadFileRes:', uploadFileRes); // uploadFileRes.data 是服务器返回的 data // 需要根据返回的数据进行相应的处理 }, fail: (err) => { console.error('上传失败', err); }
});
参数说明
- url:开发者服务器地址
- filePath:要上传文件资源的路径
- name:文件对应的 key,在服务器端通过这个 key 可以获取到文件数据
- formData:HTTP 请求中其他额外的 form data
- header:设置请求的 header,
content-type
默认为multipart/form-data
- success:接口调用成功的回调函数
- fail:接口调用失败的回调函数
- complete:接口调用结束的回调函数(调用成功、失败都会执行)
注意事项
- 确保你的服务器支持跨域请求,特别是如果你在开发环境中使用的是前端代理(如HBuilderX内置的浏览器预览),实际部署时服务器需要处理跨域问题。
filePath
是通过uni.chooseImage
或其他文件接口(如uni.downloadFile
)获得的临时文件路径。name
是服务器端接收文件时使用的字段名,确保与你的服务器端代码相匹配。- 在使用
formData
发送额外数据时,确保服务器能够正确处理这些字段。
通过uni.uploadFile
,你可以很容易地在uni-app项目中实现文件的上传功能。