[feat] FileResponse 支持 header 头定义
This commit is contained in:
		
							parent
							
								
									beeb0840d5
								
							
						
					
					
						commit
						e434c33afb
					
				| @ -24,6 +24,7 @@ type RawResponse struct { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type FileResponse struct { | type FileResponse struct { | ||||||
|  | 	headers     [][2]string | ||||||
| 	disposition string | 	disposition string | ||||||
| 	name        string | 	name        string | ||||||
| } | } | ||||||
| @ -78,12 +79,17 @@ func (this FileResponse) Get(path ...string) req.GlobalParams { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (this FileResponse) Send(w http.ResponseWriter, r *http.Request) { | func (this FileResponse) Send(w http.ResponseWriter, r *http.Request) { | ||||||
| 	if this.Get("disposition").String() != "" { |  | ||||||
| 		w.Header().Set("Content-Disposition", `attachment; filename="`+this.Get("disposition").String()+`"`) |  | ||||||
| 	} |  | ||||||
| 	if _, err := os.Stat(this.Get("name").String()); err != nil && os.IsNotExist(err) { | 	if _, err := os.Stat(this.Get("name").String()); err != nil && os.IsNotExist(err) { | ||||||
| 		w.WriteHeader(http.StatusNotFound) | 		w.WriteHeader(http.StatusNotFound) | ||||||
| 	} else { | 	} else { | ||||||
|  | 		if this.Get("disposition").String() != "" { | ||||||
|  | 			w.Header().Set("Content-Disposition", `attachment; filename="`+this.Get("disposition").String()+`"`) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		for i := 0; i < len(this.headers); i++ { | ||||||
|  | 			w.Header().Set(this.headers[i][0], this.headers[i][1]) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		http.ServeFile(w, r, this.Get("name").String()) | 		http.ServeFile(w, r, this.Get("name").String()) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @ -96,8 +102,8 @@ func NewRawResponse(b []byte, headers ...[2]string) req.HttpResponse { | |||||||
| 	return &RawResponse{raw: b, headers: headers} | 	return &RawResponse{raw: b, headers: headers} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func NewFileResponse(name string, disposition string) req.HttpResponse { | func NewFileResponse(name string, disposition string, headers ...[2]string) req.HttpResponse { | ||||||
| 	return &FileResponse{name: name, disposition: disposition} | 	return &FileResponse{name: name, disposition: disposition, headers: headers} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func NewJsonResponse(b []byte) req.HttpResponse { | func NewJsonResponse(b []byte) req.HttpResponse { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user