uploadable file
This commit is contained in:
		@@ -6,4 +6,5 @@ func AddHandlers() {
 | 
			
		||||
	addTagHandlers()
 | 
			
		||||
	addActorsHandlers()
 | 
			
		||||
	addTvshowHandlers()
 | 
			
		||||
	addUploadHandler()
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										60
									
								
								apiGo/api/FileUpload.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								apiGo/api/FileUpload.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
package api
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"openmediacenter/apiGo/api/api"
 | 
			
		||||
	"os"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func addUploadHandler() {
 | 
			
		||||
	api.AddHandler("fileupload", api.VideoNode, api.PermUser, func(ctx api.Context) {
 | 
			
		||||
		fmt.Println("we are in file upload handler")
 | 
			
		||||
 | 
			
		||||
		req := ctx.GetRequest()
 | 
			
		||||
 | 
			
		||||
		mr, err := req.MultipartReader()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		length := req.ContentLength
 | 
			
		||||
		fmt.Println(length)
 | 
			
		||||
		for {
 | 
			
		||||
			part, err := mr.NextPart()
 | 
			
		||||
			if err == io.EOF {
 | 
			
		||||
				fmt.Println("part is eof")
 | 
			
		||||
				break
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			fmt.Println(part.FormName())
 | 
			
		||||
 | 
			
		||||
			var read int64
 | 
			
		||||
			var p float32
 | 
			
		||||
			dst, err := os.OpenFile(part.FileName(), os.O_WRONLY|os.O_CREATE, 0644)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// so now loop through every appended file and upload
 | 
			
		||||
			buffer := make([]byte, 100000)
 | 
			
		||||
			for {
 | 
			
		||||
				cBytes, err := part.Read(buffer)
 | 
			
		||||
				if cBytes > 0 {
 | 
			
		||||
					read = read + int64(cBytes)
 | 
			
		||||
					//fmt.Printf("read: %v \n",read )
 | 
			
		||||
					p = float32(read) / float32(length) * 100
 | 
			
		||||
					fmt.Printf("progress: %v \n", p)
 | 
			
		||||
					dst.Write(buffer[0:cBytes])
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if err == io.EOF {
 | 
			
		||||
					fmt.Println(cBytes)
 | 
			
		||||
					fmt.Println("eof this file")
 | 
			
		||||
					break
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		ctx.Text("finished")
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user