当前位置: 首页 > news >正文

wordpress斜杠关键词seo排名怎么选

wordpress斜杠,关键词seo排名怎么选,唐山专门做网站,郴州网站建设在没有加入下面这串代码之前,下载的压缩包一直为空。遂debug了两个小时。。。 可以在服务端本地创建压缩包。单独将服务端本地的压缩包发送给客户端也是没问题的。但是两个合起来,客户端接收到的压缩包内容就为空了。 期间也尝试了 zipFile.Close() zipW…

在没有加入下面这串代码之前,下载的压缩包一直为空。遂debug了两个小时。。。
可以在服务端本地创建压缩包。单独将服务端本地的压缩包发送给客户端也是没问题的。但是两个合起来,客户端接收到的压缩包内容就为空了。
期间也尝试了
zipFile.Close()
zipWriter.Close()
但是zipFile不能立刻关

	// 关闭 ZIP 归档,确保所有数据都被写入压缩包文件err = zipWriter.Close()if err != nil {fmt.Println("无法关闭 ZIP 归档:", err)return}

将缓冲区中的数据刷新到磁盘上的压缩包文件。
在创建 ZIP 归档后,需要调用 zipWriter.Close() 来确保所有的数据都被写入压缩包文件。在 zipWriter.Close() 被调用之前,压缩包文件可能仍然处于打开状态,并且尚未完全写入磁盘。

func download(c *gin.Context) {tmpData := make(map[string]interface{})if err := c.ShouldBindJSON(&tmpData); err != nil {log.Println(err)c.JSON(http.StatusBadRequest, gin.H{"msg": "请求参数错误"})return}// 获取要下载的文件列表filePaths := tmpData["selectedIds"].([]interface{})// 获取当前时间currentTime := time.Now()// 格式化为特定格式formattedTime := currentTime.Format("2006-01-02-15-04")zipFilename := formattedTime + ".zip"tempZipPath := filepath.Join(zipFilename)// 创建压缩包文件zipFile, err := os.Create(tempZipPath)if err != nil {fmt.Println("无法创建压缩包文件:", err)return}defer zipFile.Close()// 创建 ZIP 归档zipWriter := zip.NewWriter(zipFile)defer zipWriter.Close()for _, filePath := range filePaths {idStr := fmt.Sprintf("%v", filePath)filePath := filepath.Join("nuclei-templates-original", idStr+".yaml")fmt.Printf(filePath)// 添加文件到 ZIP 归档err = addFileToZip(zipWriter, filePath)if err != nil {fmt.Println("无法添加文件到压缩包:", err)return}fmt.Println("文件已成功添加到压缩包中。")}// 关闭 ZIP 归档,确保所有数据都被写入压缩包文件err = zipWriter.Close()if err != nil {fmt.Println("无法关闭 ZIP 归档:", err)return}file, err := os.Open(tempZipPath)if err != nil {c.String(http.StatusInternalServerError, "无法打开压缩包")return}// 获取文件信息fileInfo, err := file.Stat()if err != nil {c.String(http.StatusInternalServerError, "无法获取压缩包信息")return}// 设置响应头c.Header("Content-Type", "application/zip")c.Header("Content-Disposition", "attachment; filename="+tempZipPath)c.Header("Content-Length", strconv.FormatInt(fileInfo.Size(), 10))// 将压缩包内容发送给客户端_, err = io.Copy(c.Writer, file)if err != nil {c.String(http.StatusInternalServerError, "无法发送压缩包")return}}func addFileToZip(zipWriter *zip.Writer, filePath string) error {// 打开要添加的文件file, err := os.Open(filePath)if err != nil {return err}defer file.Close()// 获取文件信息info, err := file.Stat()if err != nil {return err}// 创建 ZIP 归档中的文件header, err := zip.FileInfoHeader(info)if err != nil {return err}// 设置 ZIP 归档中的文件名header.Name = filepath.Base(filePath)// 写入文件到 ZIP 归档writer, err := zipWriter.CreateHeader(header)if err != nil {return err}_, err = io.Copy(writer, file)return err
}

gin框架跟着 狂神说,一个小时速成,讲的很好
这是老师课上的源码

package main
import ("encoding/json""log""net/http""github.com/gin-gonic/gin""github.com/thinkerou/favicon"
)
//自定义go中间件即拦截器
//给所有请求使用  则不不写在下列方法里,写了则拦截指定方法的请求func myHandler() (gin.HandlerFunc) {//通过自定义的中间件,设置的值,在后续处理只要调用了这个中间件的都可以拿到这里的参数return func(context *gin.Context) {context.Set("usersession","userid-1")//if ...context.Next() //放行context.Abort() //阻止}
}
func main() {//创建一个服务ginServer := gin.Default()ginServer.Use(favicon.New("./favicon.ico"))//加载静态页面ginServer.LoadHTMLGlob("templates/*")//加载资源目录ginServer.Static("/static","./static")//Gin RestfulginServer.GET("/hello",myHandler(),func(Context *gin.Context) {//取出中间件中的值usersession := Context.MustGet("userSession").(string) //空接口转换为stringlog.Println("------->",usersession)Context.JSON(200,gin.H{"msg":"hello,world"})})ginServer.POST("/user",func(c *gin.Context) {c.JSON(200,gin.H{"msg":"post,user"})})ginServer.PUT("/user")ginServer.DELETE("/user")//响应一个页面给前端ginServer.GET("/index",func(Context *gin.Context) {Context.HTML(http.StatusOK,"index.html",gin.H{"msg":"这是go后台传递来的数据",})      //接收前端传递过来的参数//info?userid=xxx&username=kuangshen// ginServer.GET("/user/info",func(context *gin.Context) {//  userid := context.Query("userid")//  username := context.Query("username")//  context.JSON(http.StatusOK,gin.H{//      "userid": userid,//      "username": username,//  })  // })//info/1/kaungshenginServer.GET("/user/info/:userid/:username",func(context *gin.Context) {userid := context.Param("userid")username := context.Param("username")context.JSON(200,gin.H{"userid": userid,"username": username,})})//掌握技术后面的应用- 掌握基础知识,加以了解web知识// 前端给后端传递 jsonginServer.POST("/json",func(context *gin.Context) {//request.body//[]body 返回的是切片data,_ := context.GetRawData()var m map[string]interface{}//包装为json数据 []byte_ = json.Unmarshal(data,&m)context.JSON(200,m)})//支持表单ginServer.POST("/user/add",func(context *gin.Context) {username := context.PostForm("username")password := context.PostForm("password")context.JSON(200,gin.H{"msg":"ok","username":username,"password":password,})})//路由ginServer.GET("/test",func(context *gin.Context) {//重定向context.Redirect(301,"http://baidu.com")        })//404 NoRouteginServer.NoRoute(func(context *gin.Context) {context.HTML(http.StatusNotFound,"404.html",nil)})//路由组userGroup := ginServer.Group("/user"){userGroup.GET("/add")userGroup.POST("/login")userGroup.POST("/logout")}orderGroup := ginServer.Group("order"){orderGroup.GET("/add")orderGroup.DELETE("/delete")}  
})//服务器端口ginServer.Run(":8082")
}
http://www.tj-hxxt.cn/news/18458.html

相关文章:

  • 做网站前置审批如何在百度上做广告
  • 黄石市新闻深圳有实力的seo公司
  • 网站收录了但是搜索不到推一手新闻发稿平台
  • 百度中搜到网站名字百度招聘2022年最新招聘
  • 页面游戏百度seo排名优化软件化
  • 站长工具欧美高清陕西百度推广的代理商
  • 中国建设银行官网的网站首页seo外链软件
  • 做网站的毕设开题依据app怎么推广
  • 网站建设实验结论steam交易链接可以随便给别人吗
  • wordpress smtp 无法发送邮件搜索关键词排名优化软件
  • 关于做网站免费发布广告的平台
  • 哪个网站可以宣传做的蛋糕国内seo公司
  • 建立网站的服务器搜索引擎排名中国
  • 湖北营销型网站建设价格ebay欧洲站网址
  • 企业网站优化兴田德润怎么样锦绣大地seo官网
  • 推广网站的方法有黄页网站推广效果
  • 网站怎么做反向代理国内seo公司哪家最好
  • 和狗做视频那一个网站百度站长工具抓取诊断
  • 企业手机网站制作seo流量优化
  • 网站打开出现建设中sem是什么的缩写
  • 影院资讯 wordpressseo优化便宜
  • 做众筹的网站有几个seo赚钱
  • 专门做地图的网站天津百度网站排名优化
  • 网站被模仿苏州seo关键词优化软件
  • 西安大网站建设公司排名一个具体网站的seo优化
  • 怎样查看一个wordpress网站插件成人短期就业培训班
  • 便捷网站建设价格百度知道小程序
  • 网站建设行业怎么样百度上广告怎么搞上去的
  • 前端网站做多语言谷歌seo推广服务
  • 零售网站建设方案互联网运营推广公司