Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张磊
/
FileStorageBeego
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
2f02653b
authored
2013-04-09 23:33:48 +0800
by
astaxie
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
add GetFIle & enhance router
1 parent
f9e8b4f1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
3 deletions
controller.go
router.go
controller.go
View file @
2f02653
...
...
@@ -7,6 +7,7 @@ import (
"github.com/astaxie/beego/session"
"html/template"
"io/ioutil"
"mime/multipart"
"net/http"
"net/url"
"path"
...
...
@@ -191,6 +192,10 @@ func (c *Controller) GetBool(key string) (bool, error) {
return
strconv
.
ParseBool
(
c
.
Input
()
.
Get
(
key
))
}
func
(
c
*
Controller
)
GetFile
(
key
string
)
(
multipart
.
File
,
*
multipart
.
FileHeader
,
error
)
{
return
c
.
Ctx
.
Request
.
FormFile
(
key
)
}
func
(
c
*
Controller
)
StartSession
()
(
sess
session
.
SessionStore
)
{
sess
=
GlobalSessions
.
SessionStart
(
c
.
Ctx
.
ResponseWriter
,
c
.
Ctx
.
Request
)
return
...
...
router.go
View file @
2f02653
...
...
@@ -41,17 +41,43 @@ func (p *ControllerRegistor) Add(pattern string, c ControllerInterface) {
params
:=
make
(
map
[
int
]
string
)
for
i
,
part
:=
range
parts
{
if
strings
.
HasPrefix
(
part
,
":"
)
{
expr
:=
"(
[^/]
+)"
expr
:=
"(
.
+)"
//a user may choose to override the defult expression
// similar to expressjs: ‘/user/:id([0-9]+)’
if
index
:=
strings
.
Index
(
part
,
"("
);
index
!=
-
1
{
expr
=
part
[
index
:
]
part
=
part
[
:
index
]
//match /user/:id:int ([0-9]+)
//match /post/:username:word ([\w]+)
}
else
if
lindex
:=
strings
.
LastIndex
(
part
,
":"
);
lindex
!=
0
{
switch
part
[
lindex
:
]
{
case
"int"
:
expr
=
"([0-9]+)"
part
=
part
[
:
index
]
case
"word"
:
expr
=
`([\w]+)`
part
=
part
[
:
index
]
}
}
params
[
j
]
=
part
parts
[
i
]
=
expr
j
++
}
if
strings
.
HasPrefix
(
part
,
"*"
)
{
expr
:=
"(.+)"
if
part
==
"*.*"
{
params
[
j
]
=
":path"
parts
[
j
]
=
"([^.]+)."
j
++
params
[
j
]
=
":ext"
parts
[
j
]
=
"([^.]+)"
j
++
}
else
{
params
[
j
]
=
":splat"
parts
[
i
]
=
expr
j
++
}
}
}
if
j
==
0
{
//now create the Route
...
...
@@ -79,10 +105,8 @@ func (p *ControllerRegistor) Add(pattern string, c ControllerInterface) {
route
.
params
=
params
route
.
pattern
=
pattern
route
.
controllerType
=
t
p
.
routers
=
append
(
p
.
routers
,
route
)
}
}
func
(
p
*
ControllerRegistor
)
AddHandler
(
pattern
string
,
c
http
.
Handler
)
{
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment