Javascript Angularjs将文件输入类型的post表单发送到php
我有一个类似的表格:Javascript Angularjs将文件输入类型的post表单发送到php,javascript,php,angularjs,forms,Javascript,Php,Angularjs,Forms,我有一个类似的表格: <form> ... <input type="text" ng-model="data.textInput"> <input type="file" ng-model="data.imageInput"> ... <form> 然后,在我的php文件中,我可以访问如下文本数据: $_POST = json_decode(file_get_contents('php://input'),
<form>
...
<input type="text" ng-model="data.textInput">
<input type="file" ng-model="data.imageInput">
...
<form>
然后,在我的php文件中,我可以访问如下文本数据:
$_POST = json_decode(file_get_contents('php://input'), true);
echo $_POST['textInput'];
到目前为止,一切都正常工作,但问题是访问文件输入类型数据。我见过一些例子,包括在调用http请求之前上载文件,但它们没有显示如何在服务器中处理请求
我想实现的是使用base64\u encode
对文件进行编码,以便将其上载到数据库中。当我发布一个没有angularjs的表单时,我使用这行代码对文件进行编码,然后将其上传到db中:
$imageInput= base64_encode(file_get_contents($_FILES['imageInput']['tmp_name']));
如何使用angularjs实现这一点?需要使用FormData API并为ajax设置特殊配置。这不难研究
angular upload
Ok,但是如何在php文件中处理这个问题呢?如何在base64中编码?如果使用FormData API,则无需对base64执行任何操作。。。将在php中使用$\u文件
。数据不会作为json发送,您不希望$http
进行任何转换。。。请调查一下。
$imageInput= base64_encode(file_get_contents($_FILES['imageInput']['tmp_name']));