帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
7
帖子
0
勋章
61
Y币

[多端开发] api.ajax 文件上传

[复制链接]
发表于 2023-5-24 23:44:49
前端代码:
<div class='file'>
        上传图片1:
        <input id="audio" type="file" name="file" />
</div>

接口:
var formData = new FormData();
formData.append('audio', $api.byId('audio').files[0]);

api.ajax({
            url: 'http://ip/xxx.php',
            method: 'post',
            dataType: "json",
            data:
             {
                values:{
                    'sentence':sentransValue,   
                },
                files:formDate,

            }
}
后端php接口:
$audio=$__FILES['audio'];

为什么后端服务器没有接收到文件并且报错 undefined index: audio
            

7
帖子
0
勋章
61
Y币
补充一下几个地方写错,上面的input中的name应为aduio,php代码中多写了_,但是还是报错
您好,这个打印一下看看是什么  sentransValue,formDate
本帖最后由 chyd 于 2023-5-25 10:50 编辑

你传参不对哦,files参数模仿values格式,另外,后端接收字段名是audio,你前段就没有传哦,报错提示的也很清楚啊undefined index: audio,就没有这个参数,建议files:{
                    'aduio':图片,   
                },----另外建议上传这种使用框架内置api.除非你是要开发web公众号之类的。如果是APP建议使用api.getPicture
另外,既然你是多端开发,建议你看一下avm文档,尽量不要使用div标签,avm有自己的标签规则
7
帖子
0
勋章
61
Y币
chyd · 2023-5-25 10:47你传参不对哦,files参数模仿values格式,另外,后端接收字段名是audio,你前段就没有传哦,报错提示的也很清楚啊undefined index: audio,就没有这个参数,建议files:{
                    'aduio':图片,   
     ...

'audio'api.byId('audio').files[0] 我修改成这样对吗
7
帖子
0
勋章
61
Y币
技术咨询-特特 · 2023-5-25 10:31您好,这个打印一下看看是什么  sentransValue,formDate

sentransValue是我定义的字符串,formDate 打印出来是{"audio":{}}
7
帖子
0
勋章
61
Y币
function uploadAudio() {
  var audioInput = document.getElementById('audio');
  var file = audioInput.files[0]; // 获取选择的音频文件
  
  var url = 'YOUR_UPLOAD_API_URL'; // 替换为实际的上传接口 URL

  api.ajax({
    url: url,
    method: 'post',
    data: {
      files: { audio: file }
    }
  }, function(ret, err) {
    if (ret) {
      // 音频文件上传成功的处理逻辑
      console.log('音频文件上传成功');
      console.log(ret);
    } else {
      // 音频文件上传失败的处理逻辑
      console.log('音频文件上传失败');
      console.log(err);
    }
  });
}
这种写法上传音频对吗
11
帖子
0
勋章
1471
Y币
这种写法是不对的,要通过api.getPicture这样的方式来获取文件的路径或者临时路径

var audioInput = document.getElementById('audio');
var file = audioInput.files[0]; // 获取选择的音频文件
这个方式是html中的方式,在这里使用是不可取的


api.ajax  里面的files 是在移动端上的文件路径,只有是移动端上的路径上传时才认的,你上面的这种写法相当于没有传文件
11
帖子
0
勋章
1471
Y币
BIP461107 · 2023-5-25 15:43function uploadAudio() {
  var audioInput = document.getElementById('audio');
  var file = audioInput.files[0]; // 获取选择的音频文件

https://developer.yonyou.com/docs/Client-API/Func-Ext/fileBrowser

可以用这个插件试试看
12下一页
您需要登录后才可以回帖 登录

本版积分规则