http.ServeFile () - проблема с именем файла на клиенте - PullRequest
0 голосов
/ 07 июня 2019

Есть проблема с serveFile, я не могу получить его, чтобы получить правильное имя файла на клиенте, это код:

func serveFile(w http.ResponseWriter, r *http.Request,path string, filename string){
  http.ServeFile ( w,r,path+"\\"+filename)
}


    // incoming API requests
    func (gv *GlobalVars) ServeHTTP(w http.ResponseWriter, r *http.Request) {

        switch r.URL.Path {
        case "/GetFile":
        keys := r.URL.Query()
        urlfilename := keys.Get("filename") 
        serveFile (w,r,"c://files", urlfilename)
       }
}

Если я попытаюсь проверить загрузку с помощью Curl:

curl -O -J localhost:8888/GetFile?filename=index.html

Я ожидал, что это будет index.html в моей папке c: \ files \, но имя файла, которое он получает при выполнении curl, таково:

GetFile_filename=index.html

Я также пытался с serveContent и вводом «filename =» вручную, но с тем же результатом, что и http.serveFile ()

Кто-нибудь знает, что идет не так?

1 Ответ

0 голосов
/ 07 июня 2019

если у кого-то возникнет такая же проблема, так как Адриан заметил, что это не имеет ничего общего с Golang - но его завиток - при тестировании на локальном хосте вы ДОЛЖНЫ указать http: // в пути url, он не будет работать, если вы просто используете "localhost: 8888 /...."

curl -O -J -L http://localhost:8888/GetFile?filename=index.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...