编辑器图片自动上传是指在使用文本编辑器(如富文本编辑器)时,用户可以插入图片,然后这些图片会自动上传到服务器,并将上传后的图片地址插入到编辑器中。这样可以避免手动上传图片的繁琐步骤,提高工作效率。
<input type="file">元素让用户选择图片。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Image Upload Example</title>
</head>
<body>
<textarea id="editor"></textarea>
<input type="file" id="imageUpload" accept="image/*">
<script>
document.getElementById('imageUpload').addEventListener('change', function(event) {
const file = event.target.files[0];
const formData = new FormData();
formData.append('image', file);
fetch('/upload.php', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
const imgTag = `<img src="${data.url}" alt="Uploaded Image">`;
document.getElementById('editor').value += imgTag;
})
.catch(error => console.error('Error:', error));
});
</script>
</body>
</html><?php
if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
$tmp_name = $_FILES['image']['tmp_name'];
$name = basename($_FILES['image']['name']);
$uploadPath = 'uploads/' . $name;
if (move_uploaded_file($tmp_name, $uploadPath)) {
$response = [
'url' => $uploadPath
];
header('Content-Type: application/json');
echo json_encode($response);
} else {
http_response_code(500);
echo json_encode(['error' => 'Failed to move uploaded file']);
}
} else {
http_response_code(400);
echo json_encode(['error' => 'Invalid file']);
}
?>uploads目录存在并且可写。php.ini)中的upload_max_filesize和post_max_size设置。通过以上步骤和代码示例,你可以实现一个基本的编辑器图片自动上传功能。根据具体需求,你可以进一步优化和扩展这个功能。