uni.uploadFile上传文件

本文探讨了前端如何处理nobounry、fileisnotpresent和multipart解析错误,通过调整`u-upload`配置、设置正确header及避免指定Content-Type来解决上传问题,详细介绍了使用`uni.uploadFile`的示例和关键参数设置。
摘要由CSDN通过智能技术生成

一、遇到问题

需求就是上传之前要在去请求一个识别图片的。所以需要手动上传图片,但是有以下问题

1.no bounry

2.file is not present

3.Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http

最后导致上传失败。

然后刚开始看别人写的,结果不行。后来研究了一波。用下面的方式可以

1.

<u-upload ref="uUpload5" :action="define.baseURL+'/api/changepower/ocr/v1/vehicleLicense'"
	max-count="1" :file-list="fileList5" @on-success="upload5" :header="uploadHeaders" :before-upload="beforeUpload"></u-upload>

首先是header 是token信息,一个上传前的钩子函数,文件列表展示用

2.我在上传之前的事件注意别填写 content-type 和 formdata

async beforeUpload(index, list) {
    uni.uploadFile({
        url: this.define.baseURL+'/api/file/Uploader/annexpic',
		filePath: list[0].url,
		name: 'file', //后台接收字段名
	   // formData:{formData},
		header: {
		   // "Content-Type": "multipart/form-data",
			...this.uploadHeaders
		},
		success: (res) => {
			console.log('请求成功_______________', res)
		},
		fail: (err) => {
			console.log('请求error_______________', err)
		}
	})

}

url是后端的接口

filepath直接用回调参数即可,

name:默认是file。如果后端接收文件名字不一样,则要更换

header:需要填写你的token等信息。

`uni.uploadFile` 是 UniApp(微信小程序、H5等平台统一的框架)中的一个方法,用于处理文件的上传操作。它允许开发者上传本地文件到服务器,常用于图片、视频、音频等资源的上传。这个方法通常包含以下几个关键步骤: 1. **初始化上传**: - `uni.uploadFile(file, options, successCallback, errorCallback)`:调用该方法,参数 `file` 是待上传的文件对象,`options` 是上传配置,包括url、headers、method等,`successCallback` 是上传成功的回调函数,`errorCallback` 是上传失败的回调。 2. **配置选项**: - `options`: 可以设置`formData`(表单数据)或`headers`(HTTP头信息),根据后端接口需求定制。 - `multipart/form-data` 或 `application/x-www-form-urlencoded` 是常见的 Content-Type 类型。 3. **上传过程**: - 当用户选择文件后,`uni.chooseFile` 获取文件对象,然后传给 `uploadFile` 方法。 - 方法会异步发起请求,上传过程中可能需要显示进度条或者取消上传。 4. **回调处理**: - `successCallback`: 当上传成功时,会接收到一个包含服务器响应数据的对象,可以在此处理上传结果,比如存储到数据库或更新界面状态。 - `errorCallback`: 若上传过程中发生错误,如网络问题、服务器返回错误码等,会在这里捕获并处理错误。 5. **进度和取消**: - 可以通过监听 `progress` 事件获取上传进度,`onUploadProgress` 函数会接收一个对象,其中 `percentage` 是上传进度百分比。 - 使用 `pause` 和 `resume` 方法来暂停或恢复上传,或者使用 `cancel` 方法提前取消上传。 相关问题: 1. 如何在uni.uplaodFile中设置断点续传? 2. uni.uplaodFile如何处理上传前的权限验证? 3. uni.uplaodFile能否支持文件分片上传?如果可以,具体如何实现?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值