图片上传API
时间:2023-6-3 23:35 作者:小诸葛 分类: 前端 正在检查是否收录...
前端代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>图片上传示例</title>
</head>
<body>
<form>
<input type="file" id="fileInput">
<button type="button" onclick="upload()">上传</button>
</form>
<script>
function upload() {
var fileInput = document.getElementById("fileInput");
var file = fileInput.files[0];
var ajax = new XMLHttpRequest();
var url = "http://home.v6g.cn/upload.php";
ajax.open("POST", url, true);
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200) {
// 请求成功,在此处理返回的数据
var responseJson = JSON.parse(ajax.responseText);
console.log(responseJson);
}
};
var formData = new FormData();
formData.append("file", file);
ajax.send(formData);
}
</script>
</body>
</html>
后端代码
<?php
header("Content-Type:text/html;charset=UTF-8");
header('Access-Control-Allow-Origin: *'); // 允许跨域访问
header('Access-Control-Allow-Methods: POST'); // 允许POST请求
header('Access-Control-Allow-Headers: Content-Type'); // 允许数据类型为JSON
if ($_FILES["file"]["error"] > 0) {
// 如果文件上传错误,返回错误信息
echo json_encode(array('code' => -1, 'msg' => '上传失败:' . $_FILES["file"]["error"]));
} else {
// 将上传的文件移动到指定位置
$uploadDir = "./uploads/";
if (!is_dir($uploadDir)) {
mkdir($uploadDir, 0777, true);
}
$fileName = md5(time() . rand()) . '.' . pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);
$uploadPath = "./uploads/" . $fileName;
if (move_uploaded_file($_FILES["file"]["tmp_name"], $uploadPath)) {
// 获取上传文件信息
$fileSize = filesize($uploadPath);
$fileUrl = 'http://' . $_SERVER['HTTP_HOST'] . '/uploads/' . $fileName;
$fileTime = date('Y-m-d H:i:s', filemtime($uploadPath));
// 返回上传成功后的文件地址和信息
$response = array(
'code' => 0,
'msg' => '上传成功',
'data' => array(
'src' => $fileUrl,
'name' => $fileName,
'size' => $fileSize,
'time' => $fileTime
)
);
echo json_encode($response);
} else {
echo json_encode(array('code' => -2, 'msg' => '上传失败'));
}
}
?>
使用方法:
1. 根目录创建 文件夹 uploads 用于存放图片
2. 创建 upload.php 放入后端代码
3. 创建 index.html 存放前端代码
4. 访问前端代码 上传图片,打开控制台,即可看到返回结果
推荐阅读:
扫描二维码,在手机上阅读