我将 angular-upload-file 与使用 PHP Slim 框架构建的服务器端一起使用。在我的 FileUploader 配置中,我只有:
$scope.uploader = new FileUploader({
url: 'upload/upload.php'
});
然后在我的后端,就像相关的维基一样:
if ( !empty( $_FILES ) ) {
$tempPath = $_FILES[ 'file' ][ 'tmp_name' ];
$uploadPath = dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'uploads' . DIRECTORY_SEPARATOR . $_FILES[ 'file' ][ 'name' ];
move_uploaded_file( $tempPath, $uploadPath );
$answer = array( 'answer' => 'File transfer completed' );
$json = json_encode($answer);
echo $json;
} else {
echo 'No files';
}
问题是当我在不使用 PHP Slim 的情况下放置此代码时,它工作正常,但是当我尝试用 PHPSlim 包装它时,我收到的是 GET 请求而不是 POST:
使用这样的代码:
$scope.uploader = new FileUploader({
url: 'API/upload/img'
});
并进入 API:
$app->post('/upload/img', function(){
if ( !empty( $_FILES ) ) {
$tempPath = $_FILES[ 'file' ][ 'tmp_name' ];
$uploadPath = dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'uploads' . DIRECTORY_SEPARATOR . $_FILES[ 'file' ][ 'name' ];
move_uploaded_file( $tempPath, $uploadPath );
$answer = array( 'answer' => 'File transfer completed' );
$json = json_encode($answer);
echo $json;
} else {
echo 'No files';
}
});
我试图找出问题来自哪里,服务器端还是客户端?我尝试使用类似的插件 ng-file-upload 但我有完全相同的问题,所以我认为它应该是 PHPSlim 但我不确定。
我需要使用 PHPSlim,因为我使用中间件来处理一些必需的身份验证请求。
提前致谢,