<?php
header('Content-Type: application/json');
if($_SERVER['REQUEST_METHOD'] === 'POST'){
$uploadDir = 'uploads/';
$ext = pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION);
$filename = uniqid().'.'.$ext;
$target = $uploadDir.$filename;
if(move_uploaded_file($_FILES['image']['tmp_name'], $target)){
$shareCode = substr(md5($filename), 0, 8);
file_put_contents('links.db', $shareCode.'|'.$filename."\n", FILE_APPEND);
echo json_encode(['code'=>$shareCode]);
}else{
http_response_code(500);
echo json_encode(['error'=>'上传失败']);
}
}
<!DOCTYPE html>
<html>
<head>
<title>相册作品分享</title>
<style>
#uploadBox { border:2px dashed #ccc; padding:40px; text-align:center }
#preview { max-width:300px; display:none }
</style>
</head>
<body>
<div id="uploadBox">
<input type="file" id="imageInput" accept="image/*">
<img id="preview">
<button id="uploadBtn">生成分享链接</button>
<div id="result"></div>
</div>
<script>
document.getElementById('imageInput').addEventListener('change', function(e){
const file = e.target.files[0];
if(file){
const preview = document.getElementById('preview');
preview.src = URL.createObjectURL(file);
preview.style.display = 'block';
}
});
document.getElementById('uploadBtn').addEventListener('click', function(){
const file = document.getElementById('imageInput').files[0];
if(!file) return alert('请选择图片');
const formData = new FormData();
formData.append('image', file);
fetch('upload.php', {
method: 'POST',
body: formData
}).then(res => res.json())
.then(data => {
const shareUrl = `${window.location.href}view.php?code=${data.code}`;
document.getElementById('result').innerHTML =
`分享链接:<a href="${shareUrl}" target="_blank">${shareUrl}</a>`;
});
});
</script>
</body>
</html>
php
$code = $_GET['code'] ?? '';
if($code && file_exists('links.db')){
$lines = file('links.db');
foreach($lines as $line){
list($savedCode, $filename) = explode('|', trim($line));
if($savedCode === $code){
header('Content-Type: image/jpeg');
readfile("uploads/$filename");
exit;
}
}
}
http_response_code(404);
echo '图片不存在或已过期';
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/jishuyucaifu/article/details/147978451