用户点击上传按钮后,弹出文件选择窗口供用户选择文件。之后我们可以在JavaScript代码中使用FileReader来将文件读取为base64格式的字符串形式进行发送。而base64格式的文件直接可以指定为img,audio,video的src,这样就可以将图片,音频,视频,用标签显示在页面了,如果是其他格式的文件,可以通过将a标签的href属性来链接文件
<input id="upload" type="file" value="file"/>
document.getElementById('upload').addEventListener('change', function() {
//检查是否有文件被选中
if (this.files.length != 0) {
//获取文件并用FileReader进行读取
var file = this.files[0],
reader = new FileReader();
if (!reader) {
console.log '对不起,您的浏览器不支持!');
this.value = '';
return;
};
reader.onload = function(e) {
//读取成功,显示到页面并发送到服务器
this.value = '';
//e.target.result为base64格式的文件
socket.emit('file', e.target.result);
};
reader.readAsDataURL(file);
};
}, false);
网友评论