ISSUE-221
This commit is contained in:
@ -63,6 +63,8 @@ import (
|
||||
"github.com/skip2/go-qrcode"
|
||||
)
|
||||
|
||||
const getPathPart = "get"
|
||||
|
||||
var (
|
||||
htmlTemplates = initHTMLTemplates()
|
||||
textTemplates = initTextTemplates()
|
||||
@ -146,9 +148,12 @@ func (s *Server) previewHandler(w http.ResponseWriter, r *http.Request) {
|
||||
templatePath = "download.html"
|
||||
}
|
||||
|
||||
resolvedUrl := resolveUrl(r, getURL(r).ResolveReference(r.URL), true)
|
||||
relativeURL, _ := url.Parse(path.Join(s.proxyPath, token, filename))
|
||||
resolvedURL := resolveURL(r, getURL(r).ResolveReference(relativeURL), true)
|
||||
relativeURLGet, _ := url.Parse(path.Join(s.proxyPath, getPathPart, token, filename))
|
||||
resolvedURLGet := resolveURL(r, getURL(r).ResolveReference(relativeURLGet), true)
|
||||
var png []byte
|
||||
png, err = qrcode.Encode(resolvedUrl, qrcode.High, 150)
|
||||
png, err = qrcode.Encode(resolvedURL, qrcode.High, 150)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
@ -164,6 +169,7 @@ func (s *Server) previewHandler(w http.ResponseWriter, r *http.Request) {
|
||||
Content html_template.HTML
|
||||
Filename string
|
||||
Url string
|
||||
UrlGet string
|
||||
Hostname string
|
||||
WebAddress string
|
||||
ContentLength uint64
|
||||
@ -174,7 +180,8 @@ func (s *Server) previewHandler(w http.ResponseWriter, r *http.Request) {
|
||||
contentType,
|
||||
content,
|
||||
filename,
|
||||
resolvedUrl,
|
||||
resolvedURL,
|
||||
resolvedURLGet,
|
||||
hostname,
|
||||
webAddress,
|
||||
contentLength,
|
||||
@ -482,14 +489,14 @@ func (s *Server) putHandler(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
filename = url.QueryEscape(filename)
|
||||
relativeURL, _ := url.Parse(path.Join(s.proxyPath, token, filename))
|
||||
deleteUrl, _ := url.Parse(path.Join(s.proxyPath, token, filename, metadata.DeletionToken))
|
||||
deleteURL, _ := url.Parse(path.Join(s.proxyPath, token, filename, metadata.DeletionToken))
|
||||
|
||||
w.Header().Set("X-Url-Delete", resolveUrl(r, deleteUrl, true))
|
||||
w.Header().Set("X-Url-Delete", resolveURL(r, deleteURL, true))
|
||||
|
||||
fmt.Fprint(w, resolveUrl(r, relativeURL, false))
|
||||
fmt.Fprint(w, resolveURL(r, relativeURL, false))
|
||||
}
|
||||
|
||||
func resolveUrl(r *http.Request, u *url.URL, absolutePath bool) string {
|
||||
func resolveURL(r *http.Request, u *url.URL, absolutePath bool) string {
|
||||
if absolutePath {
|
||||
r.URL.Path = ""
|
||||
}
|
||||
@ -517,7 +524,7 @@ func resolveWebAddress(r *http.Request, proxyPath string) string {
|
||||
var webAddress string
|
||||
|
||||
if len(proxyPath) == 0 {
|
||||
webAddress = fmt.Sprintf("%s://%s/",
|
||||
webAddress = fmt.Sprintf("%s://%s/",
|
||||
url.ResolveReference(url).Scheme,
|
||||
url.ResolveReference(url).Host)
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user