func newfileUploadRequest(uri string, params map[string]string, paramName, path string) (*http.Request, error) {
	file, err := os.Open(path)
	if err != nil {
		return nil, err
	}
	defer file.Close()

	body := &bytes.Buffer{}
	writer := multipart.NewWriter(body)
	part, err := writer.CreateFormFile(paramName, filepath.Base(path))
	if err != nil {
		return nil, err
	}
	_, err = io.Copy(part, file)

	for key, val := range params {
		_ = writer.WriteField(key, val)
	}
	err = writer.Close()
	if err != nil {
		return nil, err
	}

	request, err := http.NewRequest("POST", uri, body)
	request.Header.Add("Content-Type", writer.FormDataContentType())
	return request, err

}
// Creates a new file upload http request with optional extra params

Creates a new file upload http request with optional extra params
// Creates a new file upload http request with optional extra params
func newfileUploadRequest(uri string, params map[string]string, paramName, path string) (*http.Request, error) {
	file, err := os.Open(path)
	if err != nil {
		return nil, err
	}
	defer file.Close()
	body := &bytes.Buffer{}
	writer := multipart.NewWriter(body)
	part, err := writer.CreateFormFile(paramName, filepath.Base(path))
	if err != nil {
		return nil, err
	}
	_, err = io.Copy(part, file)
	for key, val := range params {
		_ = writer.WriteField(key, val)
	}
	err = writer.Close()
	if err != nil {
		return nil, err
	}
	request, err := http.NewRequest("POST", uri, body)
	request.Header.Add("Content-Type", writer.FormDataContentType())
	return request, err
}
func newfileUploadRequest ( uri string , params map [ string ] string , paramName , path string ) ( * http . Request , error ) { file , err := os . Open ( path ) if err != nil { return nil , err } defer file . Close ( ) body := & bytes . Buffer { } writer := multipart . NewWriter ( body ) part , err := writer . CreateFormFile ( paramName , filepath . Base ( path ) ) if err != nil { return nil , err } _ , err = io . Copy ( part , file ) for key , val := range params { _ = writer . WriteField ( key , val ) } err = writer . Close ( ) if err != nil { return nil , err } request , err := http . NewRequest ( " " , uri , body ) request . Header . Add ( " " , writer . FormDataContentType ( ) ) return request , err }
Creates a new file upload http request with optional extra params
Creates a new file upload http request with optional extra params