mirror of
https://github.com/BlueSkyXN/WorkerJS_CloudFlare_ImageBed.git
synced 2024-11-16 11:42:33 +08:00
0.8.4
修复tgph
This commit is contained in:
parent
22bfbd6e44
commit
233d20e803
|
@ -89,7 +89,7 @@
|
|||
<button type="submit" class="btn btn-primary">Upload</button>
|
||||
<button type="button" class="btn btn-info" onclick="window.location.href='/tools/imgproxy';">IMGProxy</button>
|
||||
<button type="button" class="btn btn-info" onclick="window.location.href='https://www.bestipfs.net';">IPFS</button>
|
||||
<button type="button" id="convertButton" class="btn btn-success" style="display: none;">Transform</button>
|
||||
<button type="button" id="convertButton" class="btn btn-success" style="display: none;">TGPH</button>
|
||||
</form>
|
||||
<div id="result" class="mt-3">
|
||||
<!-- 上传结果将显示在这里 -->
|
||||
|
|
42
cloudflare-worker-js-api/API_IMG_tgph.js
Normal file
42
cloudflare-worker-js-api/API_IMG_tgph.js
Normal file
|
@ -0,0 +1,42 @@
|
|||
addEventListener('fetch', event => {
|
||||
event.respondWith(handleTgphimgRequest(event.request));
|
||||
});
|
||||
|
||||
async function handleTgphimgRequest(request) {
|
||||
// 确认请求方法为 POST 并且内容类型正确
|
||||
if (request.method !== 'POST' || !request.headers.get('Content-Type').includes('multipart/form-data')) {
|
||||
return new Response('Invalid request', { status: 400 });
|
||||
}
|
||||
|
||||
// 解析表单数据
|
||||
const formData = await request.formData();
|
||||
const imageFile = formData.get('image'); // 假设字段名为 'image'
|
||||
if (!imageFile) return new Response('Image file not found', { status: 400 });
|
||||
|
||||
// 修改字段名为 'file',以适应 Telegra.ph 的接口
|
||||
formData.append('file', imageFile);
|
||||
formData.delete('image'); // 删除原来的 'image' 字段
|
||||
|
||||
// Telegra.ph 的上传接口
|
||||
const targetUrl = 'https://telegra.ph/upload?source=bugtracker';
|
||||
|
||||
// 发送修改后的表单数据
|
||||
const response = await fetch(targetUrl, {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
});
|
||||
|
||||
// 处理响应
|
||||
if (response.ok) {
|
||||
const result = await response.json();
|
||||
if (result && result.src) {
|
||||
// 提取 src 并拼接成完整的 URL
|
||||
const imageUrl = `https://telegra.ph${result.src.replace(/\\/g, '')}`; // 处理反斜杠
|
||||
return new Response(imageUrl);
|
||||
} else {
|
||||
return new Response('Error: Unexpected response format', { status: 500 });
|
||||
}
|
||||
} else {
|
||||
return new Response('Error: ' + await response.text(), { status: response.status });
|
||||
}
|
||||
}
|
|
@ -14,7 +14,7 @@ async function handleTgphimgRequest(request) {
|
|||
if (!imageFile) return new Response('Image file not found', { status: 400 });
|
||||
|
||||
// Telegra.ph 的上传接口
|
||||
const targetUrl = 'https://telegra.ph/upload?source=bugtracker';
|
||||
const targetUrl = 'https://telegra.ph/upload';
|
||||
|
||||
// 为了与 Telegra.ph 接口兼容,我们保留表单数据的格式并直接转发
|
||||
const response = await fetch(targetUrl, {
|
||||
|
|
|
@ -631,10 +631,14 @@ async function handleRequest(request) {
|
|||
const imageFile = formData.get('image'); // 假设字段名为 'image'
|
||||
if (!imageFile) return new Response('Image file not found', { status: 400 });
|
||||
|
||||
// 修改字段名为 'file',以适应 Telegra.ph 的接口
|
||||
formData.append('file', imageFile);
|
||||
formData.delete('image'); // 删除原来的 'image' 字段
|
||||
|
||||
// Telegra.ph 的上传接口
|
||||
const targetUrl = 'https://telegra.ph/upload?source=bugtracker';
|
||||
|
||||
// 为了与 Telegra.ph 接口兼容,我们保留表单数据的格式并直接转发
|
||||
// 发送修改后的表单数据
|
||||
const response = await fetch(targetUrl, {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
|
@ -643,9 +647,9 @@ async function handleRequest(request) {
|
|||
// 处理响应
|
||||
if (response.ok) {
|
||||
const result = await response.json();
|
||||
if (result && result[0] && result[0].src) {
|
||||
const imageUrl = `https://telegra.ph${result[0].src}`;
|
||||
// 直接返回图片 URL 而不是 JSON 对象
|
||||
if (result && result.src) {
|
||||
// 提取 src 并拼接成完整的 URL
|
||||
const imageUrl = `https://telegra.ph${result.src.replace(/\\/g, '')}`; // 处理反斜杠
|
||||
return new Response(imageUrl);
|
||||
} else {
|
||||
return new Response('Error: Unexpected response format', { status: 500 });
|
||||
|
|
37
python-uploader/test-tgph.py
Normal file
37
python-uploader/test-tgph.py
Normal file
|
@ -0,0 +1,37 @@
|
|||
import requests
|
||||
|
||||
# 图片上传接口的URL(与JS代码中一致)
|
||||
upload_url = "https://telegra.ph/upload?source=bugtracker"
|
||||
|
||||
# 要上传的图片路径
|
||||
image_path = r"F:\Download\20240707-204330.jpg"
|
||||
|
||||
# 读取图片文件
|
||||
with open(image_path, 'rb') as image_file:
|
||||
# 使用 multipart/form-data 发送文件
|
||||
files = {
|
||||
'file': image_file
|
||||
}
|
||||
|
||||
# 向接口发送POST请求
|
||||
response = requests.post(upload_url, files=files)
|
||||
|
||||
# 打印响应状态码和内容
|
||||
print(f"状态码: {response.status_code}")
|
||||
print(f"响应内容: {response.text}")
|
||||
|
||||
# 检查响应
|
||||
if response.status_code == 200:
|
||||
try:
|
||||
result = response.json()
|
||||
print(f"完整的JSON响应: {result}")
|
||||
if isinstance(result, list) and result and 'src' in result[0]:
|
||||
# 拼接图片的URL
|
||||
image_url = f"https://telegra.ph{result[0]['src']}"
|
||||
print(f"Image uploaded successfully: {image_url}")
|
||||
else:
|
||||
print(f"Unexpected response format: {response.text}")
|
||||
except ValueError:
|
||||
print(f"Failed to parse JSON response: {response.text}")
|
||||
else:
|
||||
print(f"Error uploading image: {response.status_code} - {response.text}")
|
Loading…
Reference in New Issue
Block a user