react + PHP+axios数据传输——文件上传处理

react + PHP+axios数据传输——文件上传处理

很久没写博客了,断更很久继续记录自己的开发经历。

这次是自己开发的一个小项目记录,技术栈用的是react+PHP+MySql,请求方式用的axios,之前从来没用过react+PHP的组合,主要是最为一个前端程序员Java有点忘记了,PHP还记得点,这里就用了PHP,好了废话不多说。

这次主要的问题是在使用react和PHP的时候,发现使用axios提交的时候上传的文件接收不到,之前用PHP都是和HTML+JS,之前的传递都是通过表单直接跳转到PHP文件来处理。用react只能是将PHP处理成接口来处理。PHP在接收表单的时候直接通过POST和GET就能拿到数据。

在处理react传输的数据时就不能通过这种方式。我也不知道为什么

首先前端,react这里要模拟一个表单数据,直接创建FormData对象就可以了,上传过程将axios的头设置成表单的模式

const formData = new FormData();
formData.append('video', this.state.video); // 上传文件
formData.append('title', '上传文件');

axios.post('http://localhost/uploadVideo.php',formData,{
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
})

你们是不是以为PHP直接用POST就能拿到数据,那是不行的。

看一下后端代码,前端传递了一个title和文件,通过POST我们只能拿到title数据,并不能拿到上传文件。后端还是要利用$_FILES函数才能拿到数据。

$_Data = json_encode($_POST);
$_Data = json_decode($_Data,true);
$upFile = $_FILES['video'];

,这种方式是我试了好几次才能通的方法。作为一个前端我觉得我的后端技术真是太差了,对于那些PHP大佬来说这应该是个很小的问题吧。我觉得我的PHP技术入门都不够,如果有哪位大佬知道原因,请给我留言告知,万分感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值