如下是我的处理方法:
uni.chooseImage({
count: num,
sizeType: ['original', 'compressed'],
sourceType: ['camera','album'],
success: (res)=> {
const files = res.tempFiles;
for (let i = 0; i < files.length; i++) {
const imgSize = files[i] && files[i].size ? files[i].size : 0;
//这是上传的文件名
const imgName = files[i] && files[i].name ? files[i].name : '';
console.log("old==",imgName,imgSize,suffix);
//https://blog.csdn.net/weixin_43479115/article/details/116235540 H5压缩的方法
TranslateImage.translate(files[i].path, ((res) => {
//这步的压缩后的文件是没有文件名,只好在压缩前先取到文件的文件名
let obj = new Object();
obj.name = imgName; //上传的文件
obj.uri = res.url;
_this.imgArr.push(obj); //这是存放图片对象的数组
return;
}))
}
}
});
最后使用uni.uploadFile() 来上传,如下:
uni.uploadFile({
url: url,
files: _this.imgArr,
fileType: "image",
formData: json_data,
header:{},
success: uploadFileRes => {
},fail(){
}
});
//java 服务端的处理如下:
List<UploadFile> uploadFile_list = getFiles();//这是jfinal 的处理方法 ,而spring 应该也差不多的处理文件
而对象 UploadFile 有个方法:getParameterName() 这是获取到上传文件的文件名 obj.name
剩下的如何在保存文件到服务器时把文件的后缀加上就可以的。
11 个回复
DCloud_UNI_GSQ
使用的HBuilderX版本多少? 什么浏览器测试的?选择的文件文件名是什么?
9***@qq.com (作者)
HBuilderX版本:1.4.1
浏览器:Google Chrome
选择文件名:b961b27c3ee33549d270ed68f41395ed.jpg
DCloud_UNI_GSQ
选择以后的文件名呢,是什么
2019-01-18 10:43
9***@qq.com (作者)
blob:http://10.10.1.236:8080/0f7a18e1-94c3-452d-8a3a-3a69c07b5dc2
DCloud_UNI_GSQ
用于上传的话就有了,这个是浏览器临时地址和原文件名无关
2019-01-18 11:50
s***@gmail.com
回复 DCloud_UNI_GSQ: 请问上传之前可以用convars对临时图片进行编辑后再上传么?
2019-07-29 20:23
米奇妙妙屋
我的也是这种
2021-11-11 11:21
1***@qq.com - 初级菜鸟
请问怎么显示已经选择的图片呢?没有扩展名
DCloud_UNI_GSQ
不用管扩展名
2019-05-15 19:48
Nocker
后端没有文件后缀无法上传,怎么解决的
DCloud_UNI_GSQ
上传会有
2019-07-31 11:06
bandeng
自己创建的blob上传后没有扩展名,怎么解决
1***@qq.com
上传图片的时候 filename没有带后缀名
j***@126.com
请问这个问题你是怎么解决的?我也遇到这个问题了,默认的没有压缩图像,我中间压缩了一下,返回的blob就不行了,上传的时候文件名没有扩展名。
2020-04-07 12:45
开发者M_少
这个问题解决了吗?上传的图片没有后缀名
2022-06-01 15:33
c***@163.com
原始文件名和扩展名是 res.tempFiles[0].name
c***@163.com
上传的代码,在filePath: 下面,还需要加上:cloudPath: res.tempFiles[0].name,
MonikaChen
H5下面,res.tempFiles是空数组
2020-10-04 23:33
2***@qq.com
cloudPath添加也没有用,后台的后缀名无法判定,这个问题是要怎么修改的
2021-01-05 18:23
2***@qq.com
这个问题解决了吗?上传的图片没有后缀名
j***@163.com
如下是我的处理方法:
uni.chooseImage({
count: num,
sizeType: ['original', 'compressed'],
sourceType: ['camera','album'],
success: (res)=> {
const files = res.tempFiles;
for (let i = 0; i < files.length; i++) {
const imgSize = files[i] && files[i].size ? files[i].size : 0;
//这是上传的文件名
const imgName = files[i] && files[i].name ? files[i].name : '';
console.log("old==",imgName,imgSize,suffix);
//https://blog.csdn.net/weixin_43479115/article/details/116235540 H5压缩的方法
TranslateImage.translate(files[i].path, ((res) => {
//这步的压缩后的文件是没有文件名,只好在压缩前先取到文件的文件名
let obj = new Object();
obj.name = imgName; //上传的文件
obj.uri = res.url;
_this.imgArr.push(obj); //这是存放图片对象的数组
return;
}))
});
最后使用uni.uploadFile() 来上传,如下:
uni.uploadFile({
url: url,
files: _this.imgArr,
fileType: "image",
formData: json_data,
header:{},
success: uploadFileRes => {
},fail(){
}
});
//java 服务端的处理如下:
List<UploadFile> uploadFile_list = getFiles();//这是jfinal 的处理方法 ,而spring 应该也差不多的处理文件
而对象 UploadFile 有个方法:getParameterName() 这是获取到上传文件的文件名 obj.name
剩下的如何在保存文件到服务器时把文件的后缀加上就可以的。