wx.chooseMessageFile({//选择文件
...
success (res) {
const tempFileArray = res.tempFilePaths//选择文件成功,返回选中的文件数组
wx.uploadFile({//上传文件,这个是重点
url: '接口地址',
filePath: tempFileArray[0].path,//第一个临时文件路径
name: 'id',//这里的name可以理解为ID,在php中使用\$_FILES['id']读取文件内容
//但是直接使用\$_FILES['id']['name']获取的是腾讯的临时文件名,很长很长
//所以可以用formData这个东西把原来的文件名传过去,像这样:
formData: {
'filename': 'file.txt'
//也可以写作tempFileArray[0].name,这个才是真正的文件名
//formData的数据是用Post上传的PHP中可以用$_POST['filename']来读到原来的文件名
}
})
}
})
可能是因为腾讯是先把本地文件复制到了自己的临时文件夹,然后再用于上传,所以上传之后,直接读文件原始文件名就是巨长一串(因为临时文件被腾讯重命名了)
所以办法就是,在传文件的时候,再通过别的方法把原来的文件名传过去,比如说formData,然后在读post里的东西,真抽象啊