@ -5,8 +5,8 @@
package repo
import (
"fmt"
"io"
"path"
"code.gitea.io/git"
@ -22,14 +22,16 @@ func ServeData(ctx *context.Context, name string, reader io.Reader) error {
buf = buf [ : n ]
}
if ! base . IsTextFile ( buf ) {
if ! base . IsImageFile ( buf ) {
ctx . Resp . Header ( ) . Set ( "Content-Disposition" , "attachment; filename=\"" + path . Base ( ctx . Repo . TreePath ) + "\"" )
ctx . Resp . Header ( ) . Set ( "Content-Transfer-Encoding" , "binary" )
}
} else if ! ctx . QueryBool ( "render" ) {
ctx . Resp . Header ( ) . Set ( "Cache-Control" , "public,max-age=86400" )
if base . IsTextFile ( buf ) || ctx . QueryBool ( "render" ) {
ctx . Resp . Header ( ) . Set ( "Content-Type" , "text/plain; charset=utf-8" )
} else if base . IsImageFile ( buf ) || base . IsPDFFile ( buf ) {
ctx . Resp . Header ( ) . Set ( "Content-Disposition" , fmt . Sprintf ( ` inline; filename="%s" ` , name ) )
} else {
ctx . Resp . Header ( ) . Set ( "Content-Disposition" , fmt . Sprintf ( ` attachment; filename="%s" ` , name ) )
}
ctx . Resp . Write ( buf )
_ , err := io . Copy ( ctx . Resp , reader )
return err