API使用指南
1. API基础信息
- 接口地址:
部署域名/api.php - 请求方式:POST(multipart/form-data)
- 返回格式:支持json、jsonp、form(默认json)
- 跨域支持:内置跨域处理,支持Web端调用
2. 请求参数
| 字段名 | 变量名 | 是否必填 | 示例值 | 描述 |
|---|---|---|---|---|
| 文件 | file | 是 | - | multipart格式上传的文件 |
| 是否首页显示 | show | 否 | 1 | 1=显示,0=隐藏(默认1) |
| 是否设置密码 | ispwd | 否 | 0 | 1=设置密码,0=不设置(默认0) |
| 下载密码 | pwd | 否 | 123456 | 仅ispwd=1时有效 |
| 返回格式 | format | 否 | json | json/jsonp/form |
| 跳转地址 | backurl | 否 | https://xxx | 仅form格式有效 |
| 回调函数 | callback | 否 | callback | 仅jsonp格式有效 |
3. 返回参数
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 上传状态 | code | Int | 0 | 0=成功,非0=失败 |
| 提示信息 | msg | String | 上传成功! | 失败时返回错误原因 |
| 文件MD5 | hash | String | f1e807cb0d6ba52d71bdb02864e6bda8 | 文件唯一标识 |
| 文件名称 | name | String | example.jpg | 原始文件名 |
| 文件大小 | size | Int | 58937 | 单位:字节 |
| 文件格式 | type | String | jpg | 文件后缀 |
| 下载地址 | downurl | String | https://xxx/down.php?key=xxx | 文件下载链接 |
| 预览地址 | viewurl | String | https://xxx/view.php?key=xxx | 仅媒体文件有此参数 |
4. 调用示例
4.1 cURL调用(推荐)
<?php
// 本地文件路径
$filePath = '/path/to/local/file.jpg';
if (!file_exists($filePath)) {
die("文件不存在: $filePath");
}
// API地址
$apiUrl = 'https://你的部署域名/api.php';
// 创建cURL句柄
$ch = curl_init();
// 构造表单数据
$postData = [
'file' => new CURLFile($filePath),
'format' => 'json',
'ispwd' => 1,
'pwd' => 'SecurePass123'
];
// 设置cURL选项
curl_setopt_array($ch, [
CURLOPT_URL => $apiUrl,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postData,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_TIMEOUT => 60
]);
// 执行请求
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 错误处理
if (curl_errno($ch)) {
die('cURL错误: ' . curl_error($ch));
}
curl_close($ch);
// 处理响应
if ($httpCode === 200) {
$result = json_decode($response, true);
if ($result && $result['code'] === 0) {
echo "上传成功!\n";
echo "下载链接: {$result['downurl']}\n";
echo "预览链接: {$result['viewurl']}\n";
} else {
echo "上传失败: {$result['msg']}\n";
}
} else {
echo "HTTP请求失败,状态码: $httpCode\n";
}
?>
4.2 Guzzle调用
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Utils;
$filePath = '/path/to/local/file.jpg';
$apiUrl = 'https://你的部署域名/api.php';
$client = new Client();
try {
$response = $client->post($apiUrl, [
'multipart' => [
[
'name' => 'file',
'contents' => fopen($filePath, 'r'),
'filename' => basename($filePath)
],
[
'name' => 'format',
'contents' => 'json'
],
[
'name' => 'ispwd',
'contents' => '1'
],
[
'name' => 'pwd',
'contents' => 'SecurePass123'
]
]
]);
$result = json_decode($response->getBody(), true);
if ($result && $result['code'] === 0) {
echo "上传成功: {$result['msg']}\n";
echo "下载链接: {$result['downurl']}\n";
} else {
echo "上传失败: {$result['msg']}\n";
}
} catch (\Exception $e) {
echo "请求异常: " . $e->getMessage() . "\n";
}
?>
5. 文件删除API
- 请求方式:DELETE
- 必要参数:
hash:文件MD5值file_pwd:文件设置的下载密码(若未设置则无需传)
- 示例(curl):
curl -X DELETE \
-d "hash=3a78c73f88489c8f33c0e430683b5d5&file_pwd=123456" \
https://你的部署域名/api.php