我有一个我的应用程序的前端写入角度,基本上选择文件并发送后端文件名和其余的表单信息:
前端部分看起来像:
$scope.submit = function() {
if ($scope.file) {
$scope.upload($scope.file);
}
};
// upload on file select or drop
$scope.upload = function (file) {
Upload.upload({
url: 'sub.php',
data: {file: file, 'country': $scope.submodelCountry}
}).then(function (resp) {
console.log('Success ' + resp.config.data.file.name + ' uploaded. Response: ' + resp.data);
}, function (resp) {
console.log('Error status: ' + resp.status);
}, function (evt) {
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
});
};
我的后端是用PHP编写的: 我基本上通过以下方式访问这两个变量:
$fileName = $_FILES['file']['name']; // value = fileName.csv
$country = $_POST['country']; // value = CZE
所以看我的后端获取所有需要的信息,但是我无法用$file = fopen($fileName,"r");
来打开文件
我该如何访问这个文件呢?或者如何将其上传到服务器上以便在之后使用?
答案 0 :(得分:1)
你必须将文件上传到某个文件夹,然后你可以访问它,
您的文件将出现在tmp
目录中,所以
使用move_uploaded_files()
移动文件,
<?php
$uploads_dir = '/uploads';
if(move_uploaded_file($_FILES["file"]["tmp_name"],
"$uploads_dir/".$_FILES["file"]["file_name"])){
echo "file uploaded";
}
?>