- Découpe de la méthode FileReceiver
This commit is contained in:
@@ -11,21 +11,30 @@ func ReceiveFile(path string, fileSize int, reader *bufio.Reader) bool {
|
||||
if fileErr != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
defer file.Close()
|
||||
|
||||
// Params
|
||||
buffer := make([]byte, 1024)
|
||||
currentSize := 0
|
||||
|
||||
b, done := copyFile(currentSize, fileSize, reader, buffer, file)
|
||||
if done {
|
||||
return b
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func copyFile(currentSize int, fileSize int, reader *bufio.Reader, buffer []byte, file *os.File) (bool, bool) {
|
||||
// Retrieving file
|
||||
for currentSize < fileSize {
|
||||
length, err := reader.Read(buffer)
|
||||
if err != nil {
|
||||
return false
|
||||
return false, true
|
||||
}
|
||||
_, err = file.WriteAt(buffer, int64(currentSize))
|
||||
if err != nil {
|
||||
return false
|
||||
return false, true
|
||||
}
|
||||
currentSize += length
|
||||
check := fileSize - currentSize
|
||||
@@ -33,5 +42,13 @@ func ReceiveFile(path string, fileSize int, reader *bufio.Reader) bool {
|
||||
buffer = make([]byte, check)
|
||||
}
|
||||
}
|
||||
return true
|
||||
return false, false
|
||||
}
|
||||
|
||||
func fileExists(filename string) bool {
|
||||
info, err := os.Stat(filename)
|
||||
if os.IsNotExist(err) {
|
||||
return false
|
||||
}
|
||||
return !info.IsDir()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user