[JavaScript] 纯文本查看 复制代码 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>上传图片到微博</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.container {
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
text-align: center;
}
input[type="file"] {
display: block;
margin: 10px auto;
}
input[type="submit"] {
background: #007BFF;
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 16px;
}
input[type="submit"]:hover {
background: #0056b3;
}
.result {
margin-top: 20px;
}
</style>
</head>
<body>
<div class="container">
<?php
function upload($file) {
$cookie = 'SUB=_2A25LX45-DeRhGeFG41MW9i3KzzmIHXVoFI-2rDV8PUNbmtAGLVLWkW9NeKqfu4N3T5EH-M-VbTpXoHobERvhQ6qX; XSRF-TOKEN=dYuP15p3qLnF9nTskRWrY6UD;';
$url = 'http://picupload.service.weibo.com/interface/pic_upload.php'
.'?mime=image%2Fjpeg&data=base64&url=0&markpos=1&logo=&nick=0&marks=1&app=miniblog'
.'&cb=http://weibo.com/aj/static/upimgback.html?_wv=5&callback=STK_ijax_' . time();
if (class_exists('CURLFile')) {
$post['pic1'] = new CURLFile(realpath($file));
} else {
$post['pic1'] = '@' . realpath($file);
}
// Curl提交
$ch = curl_init($url);
curl_setopt_array($ch, array(
CURLOPT_POST => true,
CURLOPT_VERBOSE => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array("Cookie: $cookie"),
CURLOPT_POSTFIELDS => $post,
));
$output = curl_exec($ch);
curl_close($ch);
// 正则表达式提取返回结果中的json数据
preg_match('/({.*)/i', $output, $match);
if (!isset($match[1])) return '';
return $match[1];
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_FILES['file']) && $_FILES['file']['error'] === UPLOAD_ERR_OK) {
$fileTmpPath = $_FILES['file']['tmp_name'];
$result = upload($fileTmpPath);
$data = json_decode($result, true);
if ($data && isset($data['data']['pics']['pic_1']['pid'])) {
$pid = htmlspecialchars($data['data']['pics']['pic_1']['pid'], ENT_QUOTES, 'UTF-8');
echo "<div class='result'>上传成功!<br>图片PID:<strong>{$pid}</strong></div>";
} else {
echo "<div class='result'>上传失败,无法获取图片PID。</div>";
}
} else {
echo "<div class='result'>文件上传失败,请重试。</div>";
}
} else {
?>
<form action="" method="post" enctype="multipart/form-data">
<h2>上传图片到微博</h2>
<label for="file">选择图片文件:</label>
<input type="file" name="file" id="file" accept="image/*" required>
<br><br>
<input type="submit" value="上传">
</form>
<?php
}
?>
</div>
</body>
</html>
|