Commit e81cb9d5 authored by szh's avatar szh

update

parent 6251eb0b
...@@ -264,11 +264,15 @@ func (r *Reader) Read(p []byte) (n int,err error) { ...@@ -264,11 +264,15 @@ func (r *Reader) Read(p []byte) (n int,err error) {
} }
func DownLoadFile(url string,file string) error { func DownLoadFile(url string,file string) error {
var (
buf = make([]byte, 32*1024)
)
r,err := http.Get(url) r,err := http.Get(url)
if err != nil { if err != nil {
return err return err
} }
defer func() { defer func() {
DPercent.Current = r.ContentLength
r.Body.Close() r.Body.Close()
}() }()
...@@ -280,10 +284,40 @@ func DownLoadFile(url string,file string) error { ...@@ -280,10 +284,40 @@ func DownLoadFile(url string,file string) error {
f.Close() f.Close()
}() }()
DPercent.Total = r.ContentLength DPercent.Total = r.ContentLength
reader := &Reader{ //reader := &Reader{
Reader:r.Body, // Reader:r.Body,
Total:r.ContentLength, // Total:r.ContentLength,
//}
//io.Copy(f,reader)
for {
//读取bytes
nr, er := r.Body.Read(buf)
if nr > 0 {
//写入bytes
nw, ew := f.Write(buf[0:nr])
//数据长度大于0
if nw > 0 {
DPercent.Current += int64(nw)
}
//写入出错
if ew != nil {
err = ew
break
}
//读取是数据长度不等于写入的数据长度
if nr != nw {
err = io.ErrShortWrite
break
}
}
if er != nil {
if er != io.EOF {
err = er
}
break
}
//没有错误了快使用 callback
} }
io.Copy(f,reader)
return nil return nil
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment