通过获取摄像头拍下来的照片的路径,用html5+的uploader传到服务端后能拿到文件路径和名字,但是取不到具体的文件对象。返回的size是0。
求助~但是似乎往官方示例http://demo.dcloud.net.cn/helloh5/uploader/upload.php提交,返回的数据时正常的。
请问有没有成功是示例可以参考感谢
因为需求是只能拍摄后提交,不能选取文件,所以也不能用常规的<input type="file">的方式,只能用uploader了,求助~~~
// 上传文件
var signType;
function upload(type){
var type = type;
if(type=="report"){
if(!img_self||!img_support||!video_self){
plus.nativeUI.alert("请确认照片与视频拍摄完毕");
return;
}
signType = 2;
}else if(type=="sign"){
if(!img_self||!video_self){
plus.nativeUI.alert("请确认照片与视频拍摄完毕");
return;
}
signType = 1;
}
outSet("开始上传:")
var wt=plus.nativeUI.showWaiting();
var task=plus.uploader.createUpload(server2,
{method:"POST"},
function(t,status){ //上传完成
if(status==200&&t.state==4){
outLine("上传成功:"+t.responseText);
console.log("上传成功");
mui.toast("完成");
wt.close();
console.log(JSON.stringify(t.responseText));
// console.log(JSON.stringify(t));
}else{
outLine("上传失败:"+status);
mui.toast("上传失败");
console.log(JSON.stringify(t.responseText));
wt.close();
}
}
);
task.addEventListener('statechanged',function(t,status){
var percent = parseInt(t.uploadedSize/t.totalSize*100);
document.getElementById("uploaded").innerHTML=percent+'%';
},false);
task.addFile(img_self,{"key":"image","name":"image"});
// task.addFile(img_support,{"key":"image","name":"img_support"});
// task.addFile(video_self,{});
// task.addFile([img_self,img_support,video_self],{key:"urlArray"});
task.start();
}
同时还有个疑惑,这里addFile中option中的key和常规ajax上传时,data中参数的key,是一个概念么~~
2 个回复
leol
我记得当初做的时候,key必须是字符串,只是用来做标识的吧,服务器端要不要对应,忘记了。。。
文件路径是不是正常可以访问到的?plus里面似乎有两种路径方式的,都试试看咯。
至于服务器端,当初我不是用php做的服务器端。
小资电脑
同一个问题 问两次?