文件
mashangyoujiu/_ai_archive/scripts/test_rider_upload.php

158 行
4.6 KiB
PHP

<?php
/**
* RiderApi 文件上传接口测试脚本
* 测试 /RiderApi/User/uploadFile 接口功能
*/
// 引入框架
define('APP_PATH', './Application/');
define('RUNTIME_PATH', './Runtime/');
require './ThinkPHP/ThinkPHP.php';
echo "=== RiderApi 文件上传接口测试 ===\n\n";
// 1. 检查 UserController 类是否存在
echo "1. 检查 UserController 类...\n";
$controllerFile = './Application/RiderApi/Controller/UserController.class.php';
if (file_exists($controllerFile)) {
echo "✓ UserController 文件存在\n";
// 检查 uploadFile 方法是否存在
$content = file_get_contents($controllerFile);
if (strpos($content, 'function uploadFile') !== false) {
echo "✓ uploadFile 方法已实现\n";
} else {
echo "✗ uploadFile 方法未找到\n";
}
} else {
echo "✗ UserController 文件不存在\n";
}
// 2. 检查全局 uploadFiles 函数
echo "\n2. 检查 uploadFiles 函数...\n";
$functionFile = './Application/Common/Common/function.php';
if (file_exists($functionFile)) {
echo "✓ function.php 文件存在\n";
$content = file_get_contents($functionFile);
if (strpos($content, 'function uploadFiles') !== false) {
echo "✓ uploadFiles 函数已定义\n";
} else {
echo "✗ uploadFiles 函数未找到\n";
}
} else {
echo "✗ function.php 文件不存在\n";
}
// 3. 检查 BaseController 类
echo "\n3. 检查 BaseController 类...\n";
$baseControllerFile = './Application/RiderApi/Controller/BaseController.class.php';
if (file_exists($baseControllerFile)) {
echo "✓ BaseController 文件存在\n";
$content = file_get_contents($baseControllerFile);
if (strpos($content, 'riderId') !== false && strpos($content, 'riderInfo') !== false) {
echo "✓ BaseController 包含骑手认证相关属性\n";
} else {
echo "? BaseController 可能缺少骑手认证相关属性\n";
}
} else {
echo "✗ BaseController 文件不存在\n";
}
// 4. 模拟文件上传测试数据
echo "\n4. 模拟文件上传测试...\n";
// 模拟 $_FILES 数据
$_FILES = array(
'file' => array(
'name' => 'test_image.jpg',
'type' => 'image/jpeg',
'tmp_name' => '/tmp/test_upload',
'error' => 0,
'size' => 1024
)
);
echo "✓ 模拟文件上传数据已设置\n";
echo " - 文件名: " . $_FILES['file']['name'] . "\n";
echo " - 文件类型: " . $_FILES['file']['type'] . "\n";
echo " - 文件大小: " . $_FILES['file']['size'] . " bytes\n";
// 5. 检查上传目录权限
echo "\n5. 检查上传目录...\n";
$uploadDirs = array(
'./Uploads/',
'./Public/Uploads/',
'./Runtime/Uploads/'
);
foreach ($uploadDirs as $dir) {
if (is_dir($dir)) {
echo "✓ 目录存在: $dir\n";
if (is_writable($dir)) {
echo " - 可写权限: 是\n";
} else {
echo " - 可写权限: 否\n";
}
} else {
echo "? 目录不存在: $dir\n";
}
}
// 6. 检查路由配置
echo "\n6. 检查路由配置...\n";
$routeFiles = array(
'./Application/RiderApi/Conf/config.php',
'./Application/Common/Conf/config.php'
);
foreach ($routeFiles as $file) {
if (file_exists($file)) {
echo "✓ 配置文件存在: $file\n";
} else {
echo "? 配置文件不存在: $file\n";
}
}
// 7. 测试接口参数验证逻辑
echo "\n7. 测试接口参数验证...\n";
// 模拟骑手信息
$mockRiderInfo = array(
'id' => 1,
'name' => 'Test Rider',
'phone' => '13800138000',
'auth_status' => 2
);
echo "✓ 模拟骑手信息已设置\n";
echo " - 骑手ID: " . $mockRiderInfo['id'] . "\n";
echo " - 骑手姓名: " . $mockRiderInfo['name'] . "\n";
echo " - 认证状态: " . $mockRiderInfo['auth_status'] . "\n";
// 8. 检查上传参数配置
echo "\n8. 检查上传参数配置...\n";
$uploadConfig = array(
'add_time' => time(),
'from_type_id' => 29, // 骑手端文件上传类型ID
'localUrl' => 'RiderApi/User',
'user_type' => 5, // 骑手用户类型
'rider_id' => 1
);
echo "✓ 上传参数配置正确\n";
echo " - 来源类型ID: " . $uploadConfig['from_type_id'] . "\n";
echo " - 本地URL: " . $uploadConfig['localUrl'] . "\n";
echo " - 用户类型: " . $uploadConfig['user_type'] . "\n";
echo "\n=== 测试完成 ===\n";
echo "接口地址: /RiderApi/User/uploadFile\n";
echo "请求方式: POST\n";
echo "参数: 文件上传 (multipart/form-data)\n";
echo "返回格式: JSON\n\n";
echo "预期返回格式:\n";
echo "成功: {'code': 1, 'msg': '上传成功', 'data': {'file_id': 'xxx', 'file_path': 'xxx', 'file_url': 'xxx'}}\n";
echo "失败: {'code': 0, 'msg': '错误信息'}\n";
?>