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
d80ba7b0
authored
2012-12-25 15:36:19 +0800
by
astaxie
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
when Redirect delete output
1 parent
2417464c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
71 additions
and
72 deletions
context.go
context.go
View file @
d80ba7b
package
beego
import
(
"fmt"
"mime"
"net/http"
"strings"
"time"
)
type
Context
struct
{
ResponseWriter
http
.
ResponseWriter
Request
*
http
.
Request
Params
map
[
string
]
string
}
func
(
ctx
*
Context
)
WriteString
(
content
string
)
{
ctx
.
ResponseWriter
.
Write
([]
byte
(
content
))
}
func
(
ctx
*
Context
)
Abort
(
status
int
,
body
string
)
{
ctx
.
ResponseWriter
.
WriteHeader
(
status
)
ctx
.
ResponseWriter
.
Write
([]
byte
(
body
))
}
func
(
ctx
*
Context
)
Redirect
(
status
int
,
url_
string
)
{
ctx
.
ResponseWriter
.
Header
()
.
Set
(
"Location"
,
url_
)
ctx
.
ResponseWriter
.
WriteHeader
(
status
)
ctx
.
ResponseWriter
.
Write
([]
byte
(
"Redirecting to: "
+
url_
))
}
func
(
ctx
*
Context
)
NotModified
()
{
ctx
.
ResponseWriter
.
WriteHeader
(
304
)
}
func
(
ctx
*
Context
)
NotFound
(
message
string
)
{
ctx
.
ResponseWriter
.
WriteHeader
(
404
)
ctx
.
ResponseWriter
.
Write
([]
byte
(
message
))
}
//Sets the content type by extension, as defined in the mime package.
//For example, ctx.ContentType("json") sets the content-type to "application/json"
func
(
ctx
*
Context
)
ContentType
(
ext
string
)
{
if
!
strings
.
HasPrefix
(
ext
,
"."
)
{
ext
=
"."
+
ext
}
ctype
:=
mime
.
TypeByExtension
(
ext
)
if
ctype
!=
""
{
ctx
.
ResponseWriter
.
Header
()
.
Set
(
"Content-Type"
,
ctype
)
}
}
func
(
ctx
*
Context
)
SetHeader
(
hdr
string
,
val
string
,
unique
bool
)
{
if
unique
{
ctx
.
ResponseWriter
.
Header
()
.
Set
(
hdr
,
val
)
}
else
{
ctx
.
ResponseWriter
.
Header
()
.
Add
(
hdr
,
val
)
}
}
//Sets a cookie -- duration is the amount of time in seconds. 0 = forever
func
(
ctx
*
Context
)
SetCookie
(
name
string
,
value
string
,
age
int64
)
{
var
utctime
time
.
Time
if
age
==
0
{
// 2^31 - 1 seconds (roughly 2038)
utctime
=
time
.
Unix
(
2147483647
,
0
)
}
else
{
utctime
=
time
.
Unix
(
time
.
Now
()
.
Unix
()
+
age
,
0
)
}
cookie
:=
fmt
.
Sprintf
(
"%s=%s; expires=%s"
,
name
,
value
,
webTime
(
utctime
))
ctx
.
SetHeader
(
"Set-Cookie"
,
cookie
,
false
)
}
package
beego
import
(
"fmt"
"mime"
"net/http"
"strings"
"time"
)
type
Context
struct
{
ResponseWriter
http
.
ResponseWriter
Request
*
http
.
Request
Params
map
[
string
]
string
}
func
(
ctx
*
Context
)
WriteString
(
content
string
)
{
ctx
.
ResponseWriter
.
Write
([]
byte
(
content
))
}
func
(
ctx
*
Context
)
Abort
(
status
int
,
body
string
)
{
ctx
.
ResponseWriter
.
WriteHeader
(
status
)
ctx
.
ResponseWriter
.
Write
([]
byte
(
body
))
}
func
(
ctx
*
Context
)
Redirect
(
status
int
,
url_
string
)
{
ctx
.
ResponseWriter
.
Header
()
.
Set
(
"Location"
,
url_
)
ctx
.
ResponseWriter
.
WriteHeader
(
status
)
}
func
(
ctx
*
Context
)
NotModified
()
{
ctx
.
ResponseWriter
.
WriteHeader
(
304
)
}
func
(
ctx
*
Context
)
NotFound
(
message
string
)
{
ctx
.
ResponseWriter
.
WriteHeader
(
404
)
ctx
.
ResponseWriter
.
Write
([]
byte
(
message
))
}
//Sets the content type by extension, as defined in the mime package.
//For example, ctx.ContentType("json") sets the content-type to "application/json"
func
(
ctx
*
Context
)
ContentType
(
ext
string
)
{
if
!
strings
.
HasPrefix
(
ext
,
"."
)
{
ext
=
"."
+
ext
}
ctype
:=
mime
.
TypeByExtension
(
ext
)
if
ctype
!=
""
{
ctx
.
ResponseWriter
.
Header
()
.
Set
(
"Content-Type"
,
ctype
)
}
}
func
(
ctx
*
Context
)
SetHeader
(
hdr
string
,
val
string
,
unique
bool
)
{
if
unique
{
ctx
.
ResponseWriter
.
Header
()
.
Set
(
hdr
,
val
)
}
else
{
ctx
.
ResponseWriter
.
Header
()
.
Add
(
hdr
,
val
)
}
}
//Sets a cookie -- duration is the amount of time in seconds. 0 = forever
func
(
ctx
*
Context
)
SetCookie
(
name
string
,
value
string
,
age
int64
)
{
var
utctime
time
.
Time
if
age
==
0
{
// 2^31 - 1 seconds (roughly 2038)
utctime
=
time
.
Unix
(
2147483647
,
0
)
}
else
{
utctime
=
time
.
Unix
(
time
.
Now
()
.
Unix
()
+
age
,
0
)
}
cookie
:=
fmt
.
Sprintf
(
"%s=%s; expires=%s"
,
name
,
value
,
webTime
(
utctime
))
ctx
.
SetHeader
(
"Set-Cookie"
,
cookie
,
false
)
}
...
...
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