2016-08-17 20 views
8

Widziałem w dokumentacji w Body section że istnieje wsparcie dla przesyłania plików już teraz - a przynajmniej ja rozumiem to w ten sposóbPrzesyłanie plików przy użyciu Vapor

nie mam silne fundament w rozwoju zaplecza - szczególnie jeśli dochodzi do szkieletów, które wciąż są tak szybkie, jak Vapor. Zastanawiam się, czy ktoś może podać prawdziwy przykład przesyłania plików? Miałem nadzieję na prostą stronę internetową z możliwością przesłania pliku do backendu, a następnie zapisania go do wykorzystania w przyszłości.

Odpowiedz

18

Opary umożliwiają przesyłanie plików przy użyciu kodowania wieloczęściowego. Możesz przeczytać więcej o HTTP przesłać tutaj:

How does HTTP file upload work?

I również tutaj:

What does enctype='multipart/form-data' mean?

Więc kod HTML, aby przesłać plik pary będzie wyglądać następująco:

<form action="upload" method="POST" enctype="multipart/form-data"> 
    <input type="text" name="name"> 
    <input type="file" name="image"> 
    <input type="submit" value="Submit"> 
</form> 

A następnie kod w Vapor

drop.get("form") { req in 
    return try drop.view("form.html") 
} 

drop.post("upload") { req in 
    let name = req.data["name"] 
    let image = req.data["image"] // or req.multipart["image"] 

    ... 
} 

Jeśli chodzi o sposób przechowywania obrazu, to zależy od Ciebie. Możesz przechowywać w bazie danych lub utworzyć folder w systemie, do którego masz dostęp do zapisu.

+0

czy jest tam jakieś demo z obrazem przechowującym przykład? –

+0

@ tanner0101 jest to samo w vapor 2 również? – Johnykutty