Установить формат скачиваемого файла
Есть такой код.
use std::net::TcpListener;
use std::io::Read;
use std::fs::File;
use std::io::prelude::*;
fn to_bytes(name: &str) -> Vec<u8>
{
let mut file = File::open(&name).expect("");
let meta = std::fs::metadata(&name).expect("");
let mut buf: Vec<u8> = vec![0; meta.len() as usize];
file.read(&mut buf).expect("");
return buf;
}
fn handle(mut stream: std::net::TcpStream)
{
let mut buffer = [0; 1024];
stream.read(&mut buffer).unwrap();
stream.write("HTTP/1.1 200 OK\r\n\r\n".as_bytes()).unwrap();
stream.write(to_bytes("path"));
stream.flush().unwrap();
}
fn main() {
let server = TcpListener::bind("127.0.0.1:1000").unwrap();
for str in server.incoming()
{
let mut q = str.unwrap();
handle(q);
}
}
Суть проста, создается локальный сервер, если кто-то подключится, скачается файл. Однако файл скачивается бинарный, можно ли как-то сделать так, чтобы файл имел имя и расширение?