使用angularJS和PHP上传多个文件
我试图通过阅读一些教程来学习angularJS,在这个阶段,我试图创建一个包含多个上传文件(两个单独的文件)的表单。我想用这个插件 我遇到了以下问题 1) 如何传递2个单独文件上载的值使用angularJS和PHP上传多个文件,php,angularjs,Php,Angularjs,我试图通过阅读一些教程来学习angularJS,在这个阶段,我试图创建一个包含多个上传文件(两个单独的文件)的表单。我想用这个插件 我遇到了以下问题 1) 如何传递2个单独文件上载的值 <input type="file" name="profile_pic" ng-file-select="onFileSelect"> <input type="file" name="document" ng-file-select="onFileSelect2"> PHP 多个文件
<input type="file" name="profile_pic" ng-file-select="onFileSelect">
<input type="file" name="document" ng-file-select="onFileSelect2">
PHP
多个文件最好通过单独的XHR帖子上传。如果必须在一篇文章中同时上传,请使用内容类型
多部分/表单数据
。避免使用application/x-www-form-urlencoded
,因为百分比编码为每个二进制字节创建3个文本字节。@georgeawg我添加了multipart/form data
,但在我的角度代码中,如何传递这两个文件并在php中捕获它们?您看到了示例吗?在自述中有链接。是的。。。但它只有一个输入,允许选择多个文件。但我需要有2个(或更多)单独的输入文件。例如:一个输入仅用于图像,一个输入用于文档…创建一个FormData对象并将数据和文件附加到该对象。看见确保设置内容类型:未定义
,以便XHR API可以自由地包含适当的媒体边界。当XHR API发送FormData对象时,它会使用适当的边界设置内容类型
,并在base64中对数据进行编码。
<form enctype="multipart/form-data" method="post" >
<input type="text" ng-model="name">
<input type="text" ng-model="age">
<input type="text" ng-model="title">
<input type="file" name="profile_pic" ng-file-select="onFileSelect">
<input type="file" name="document" ng-file-select="onFileSelect2">
<input type='button' ng-click='onFormSubmit' value='Submit'>
</form>
angular.module('myApp', ['ngFileUpload']);
var MyCtrl = [ '$scope', 'Upload', function($scope, Upload) {
$scope.onFileSelect = function(file) {
Upload.upload({
url: 'api/upload-data.php',
method: 'POST',
file: file,
data: {
'name': $scope.name,
'age' : $scope.age ,
'title' : $scope.title ,
}
})
};
}];
//does not show the files
var_dump($_FILES);
$filename = $_FILES['file']['name'];
move_uploaded_file( $_FILES['file']['tmp_name'] , '/uploads');
//shows the input texts
var_dump($_POST)