30 lines
566 B
Go
30 lines
566 B
Go
package utils
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
)
|
|
|
|
// SendFile Envoie d'un fichier local sur le réseau
|
|
func SendFile(filePath string, fileSize int, writer *bufio.Writer) bool {
|
|
// Ouverture du fichier
|
|
file, fileErr := os.Open(fmt.Sprintf("%s", filePath))
|
|
if fileErr != nil {
|
|
return false
|
|
}
|
|
|
|
// Fermeture du fichier anticipée (ici afin de le fermer même si copy commet une erreur)
|
|
defer file.Close()
|
|
|
|
// Lecture / Ecriture
|
|
buffer := make([]byte, 1024)
|
|
_, err := io.CopyBuffer(writer, file, buffer)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|