html实现一个可以发送图片的聊天室源码
时间: 2024-01-22 16:19:39 浏览: 27
以下是一个简单的HTML聊天室源码,可发送图片:
```html
<!DOCTYPE html>
<html>
<head>
<title>图片聊天室</title>
<style>
.chat-box {
display: flex;
flex-direction: column;
align-items: center;
padding: 20px;
}
.chat-box input[type="text"], .chat-box input[type="file"], .chat-box button {
margin: 10px;
padding: 5px;
font-size: 16px;
border: none;
border-radius: 5px;
}
.chat-box img {
max-width: 300px;
margin-top: 10px;
}
</style>
</head>
<body>
<div class="chat-box">
<div id="chat-messages"></div>
<input type="text" id="chat-name" placeholder="请输入昵称">
<input type="file" id="chat-file">
<button onclick="sendImage()">发送图片</button>
</div>
<script>
var socket = new WebSocket("ws://localhost:8080"); // 替换成你的WebSocket地址
function sendImage() {
var name = document.getElementById("chat-name").value;
var file = document.getElementById("chat-file").files[0];
if (name && file) {
var reader = new FileReader();
reader.onload = function(event) {
var image = document.createElement("img");
image.src = event.target.result;
socket.send(JSON.stringify({
name: name,
type: "image",
data: event.target.result
}));
document.getElementById("chat-messages").appendChild(image);
};
reader.readAsDataURL(file);
}
}
socket.onmessage = function(event) {
var message = JSON.parse(event.data);
if (message.type === "image") {
var image = document.createElement("img");
image.src = message.data;
document.getElementById("chat-messages").appendChild(image);
}
};
</script>
</body>
</html>
```
这里使用了WebSocket来实现实时聊天功能,并且当发送图片时,使用FileReader将图片转换成base64编码的字符串,然后通过WebSocket发送到服务器。服务器接收到消息后,广播给所有连接的客户端,客户端根据消息类型来判断是否为图片,并将图片显示在聊天室中。注意,这里只是一个简单的示例,实际应用中还需要进行更多的安全性和健壮性处理。