Установить формат скачиваемого файла

Есть такой код.

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);
    }
}

Суть проста, создается локальный сервер, если кто-то подключится, скачается файл. Однако файл скачивается бинарный, можно ли как-то сделать так, чтобы файл имел имя и расширение?


Ответы (0 шт):