有一个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
我希望它是我的c:\ files \ folder中的index.html-但是执行curl时得到的文件名是:
GetFile_filename=index.html
我还尝试了serveContent并将“ filename =“手动放入,但结果与http.serveFile()相同
有人知道出了什么问题吗?
答案 0 :(得分:0)
如果有人遇到了同样的问题,就像阿德里安(Adrian)注意到它与Golang无关-而是它的卷曲-在本地主机上进行测试时,您必须在网址路径中指定http://,如果仅使用“本地主机:8888 /....”
curl -O -J -L http://localhost:8888/GetFile?filename=index.html