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

如何查看网站是哪家公司做的域名是什么结构称为域名空间

如何查看网站是哪家公司做的,域名是什么结构称为域名空间,wordpress分类页副标题,wordpress免费模板下载Go web框架——Gin文件上传与下载 1. 文件上传1.1 入门案例#xff08;单文件#xff09;1.2 服务端保存文件的几种方式SaveUploadedFileCreateCopy 1.3 读取上传的文件1.4 多文件上传 2. 文件下载2.1 快速入门2.2 前后端模式下的文件下载2.3 中文乱码问题 1. 文件上传 1.1 … Go web框架——Gin文件上传与下载 1. 文件上传1.1 入门案例单文件1.2 服务端保存文件的几种方式SaveUploadedFileCreateCopy 1.3 读取上传的文件1.4 多文件上传 2. 文件下载2.1 快速入门2.2 前后端模式下的文件下载2.3 中文乱码问题 1. 文件上传 1.1 入门案例单文件 func main() {router : gin.Default()// 为 multipart forms 设置较低的内存限制 (默认是 32 MiB)// 单位是字节 是左移预算符号等价于 8 * 2^20// gin对文件上传大小的默认值是32MB// 1. 设置路由器的最大内存限制为8MB用于处理multipart表单数据中的文件上传。router.MaxMultipartMemory 8 20 // 8 MiB// 2. 定义一个路由处理函数router.POST(/upload, func(c *gin.Context) {// 单文件// 3.通过c.FormFile函数获取HTTP请求上传的文件对象。// 其中参数file是上传表单中文件类型的name属性值。file, _ : c.FormFile(file)// 使用log包打印上传的文件名。log.Println(file.Filename)// 4. 指定上传文件的目标完整路径dst : ./ file.Filename// 5. 使用c.SaveUploadedFile函数保存文件到指定路径下。c.SaveUploadedFile(file, dst)// 6. 使用c.String函数向客户端响应上传成功信息。c.String(http.StatusOK, fmt.Sprintf(%s uploaded!, file.Filename))})router.Run(:8000) }1.2 服务端保存文件的几种方式 SaveUploadedFile func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dst string) errorSaveUploadedFile函数用于将文件保存到指定的路径下。第一个参数是文件对象第二个参数是保存文件的路径。 CreateCopy func (c *Context) FormFile(name string) (*multipart.FileHeader, error)FormFile函数用于获取上传的文件。它返回一个文件对象其中包含了文件的元数据名称、大小等。我们可以使用这个文件对象去直接读取文件内容。 func main() {router : gin.Default()router.MaxMultipartMemory 8 20 // 8 MiBrouter.POST(/upload, func(c *gin.Context) {file, _ : c.FormFile(file)log.Println(file.Filename)// 读取文件中的数据返回文件对象fileRead, _ : file.Open()dst : ./ file.Filename// 创建一个文件out, err : os.Create(dst)if err ! nil {fmt.Println(err)}defer out.Close()// 拷贝文件对象到out中io.Copy(out, fileRead)c.String(http.StatusOK, fmt.Sprintf(%s uploaded!, file.Filename))})router.Run(:8000) }一样是使用Apifox调用没有什么毛病~ 1.3 读取上传的文件 func (c *Context) FormFile(name string) (*multipart.FileHeader, error)FormFile函数用于获取上传的文件。它返回一个文件对象其中包含了文件的元数据名称、大小等。我们可以使用这个文件对象去直接读取文件内容。 func main() {router : gin.Default()router.MaxMultipartMemory 8 20 // 8 MiBrouter.POST(/upload, func(c *gin.Context) {file, _ : c.FormFile(file)// 读取文件中的数据返回文件对象fileRead, _ : file.Open()defer fileRead.Close()data, _ : io.ReadAll(fileRead)fmt.Println(string(data))c.String(http.StatusOK, fmt.Sprintf(%s uploaded!, file.Filename))})router.Run(:8000) }在这里我们可以根据文件的内容来判断是否需要保存到服务器中。 1.4 多文件上传 func (c *Context) MultipartForm() (*multipart.Form, error)MultipartForm函数用于获取上传的表单数据。它返回一个包含了文件对象的表单对象。 func main() {router : gin.Default()// 为 multipart forms 设置较低的内存限制 (默认是 32 MiB)router.MaxMultipartMemory 8 20 // 8 MiBrouter.POST(/upload, func(c *gin.Context) {// Multipart formform, _ : c.MultipartForm()files : form.File[upload[]] // 注意这里名字不要对不上了for _, file : range files {log.Println(file.Filename)// 上传文件至指定目录c.SaveUploadedFile(file, ./file.Filename)}c.String(http.StatusOK, fmt.Sprintf(%d files uploaded!, len(files)))})router.Run(:8000) }2. 文件下载 2.1 快速入门 直接响应一个路径下的文件 func main() {router : gin.Default()router.GET(/download, func(c *gin.Context) {c.File(思考一个问题的四连问.txt)})router.Run(:8000) }然后直接在游览器访问就能下载到了 但是呐 有些响应比如图片浏览器就会显示这个图片而不是下载所以我们需要使浏览器唤起下载行为 c.Header(Content-Type, application/octet-stream) // 表示是文件流唤起浏览器下载一般设置了这个就要设置文件名 c.Header(Content-Disposition, attachment; filename牛逼.png) // 用来指定下载下来的文件名 c.Header(Content-Transfer-Encoding, binary) // 表示传输过程中的编码形式乱码问题可能就是因为它 c.File(uploads/12.png)完整代码 func main() {router : gin.Default()router.GET(/download, func(c *gin.Context) {c.Header(Content-Type, application/octet-stream)c.Header(Content-Disposition, attachment; filename牛逼.txt)c.File(思考一个问题的四连问.txt)})router.Run(:8000) }这样再使用游览器就直接下载了 2.2 前后端模式下的文件下载 如果是前后端模式下后端就只需要响应一个文件数据 文件名和其他信息就写在请求头中 c.Header(fileName, xxx.png) c.Header(msg, 文件下载成功) c.File(uploads/12.png)前端写法 async downloadFile(row) {this.$http({method: post,url: file/upload,data:postData,responseType: blob}).then(res {const _res res.datalet blob new Blob([_res], {type: application/png});let downloadElement document.createElement(a);let href window.URL.createObjectURL(blob); //创建下载的链接downloadElement.href href;downloadElement.download res.headers[fileName]; //下载后文件名document.body.appendChild(downloadElement);downloadElement.click(); //点击下载document.body.removeChild(downloadElement); //下载完成移除元素window.URL.revokeObjectURL(href); //释放掉blob对象})}2.3 中文乱码问题 前后端模式下的文件下载进程会出现中文乱码问题我们需要进行修改并且指定一些格式 后端 func Download(c *gin.Context) {filename : url.QueryEscape(国家机密.txt)// 可唤起浏览器下载c.Header(Content-Disposition, attachment; filename*utf-8filename) //c.Header(fileName, filename)c.File(uploads/国家机密.txt) }前端 async download() {let res await axios.get(/download, {headers: {responseType: blob}})if (res.status 200) {let binaryData [];binaryData.push(res.data);let url window.URL.createObjectURL(new Blob(binaryData)); //表示一个指定的file对象或Blob对象let a document.createElement(a);document.body.appendChild(a);// 转码文件的标题let filename decodeURI(res.headers.filename)// 调起文件下载a.href url;a.download filename; //命名下载名称a.click(); //点击触发下载window.URL.revokeObjectURL(url);} }这就是简单的文件上传和下载啦~~
http://www.w-s-a.com/news/548477/

相关文章:

  • 徐州市建设监理协会网站做一个公司官网需要多少钱
  • 网站开发学什么数据库做公司网站注意事项
  • 游戏开发网站建设国际战事最新消息
  • 达州+网站建设网站里自己怎么做推广
  • 看网站建设公司的网站案例熊掌号接入wordpress
  • 黄石下陆区建设局网站wordpress如何拖移小工具
  • 宁波网站建设信息网站开发看书
  • 网站建设优化价格北京优化seo排名
  • 微信网站建设公司费用高端网站建设 炫酷
  • 北京网站假设销售找客户最好的app
  • 做外贸需要关注的网站有什么好处宜州设计公司
  • 公司最近想做个网站怎么办陕西科强建设工程有限公司官方网站
  • 生态城门户网站 建设动态it外包收费
  • 网站项目评价老渔哥网站建设公司
  • 哈尔滨寸金网站建设价格178软文网
  • 一个网站建设的成本网站开发过程及要点
  • 监控视频做直播网站中国建筑人才网下载
  • 网站建设公司华网天下买送活动集团网站设计案例
  • 哪些网站比较容易做哪个网站做中高端衣服
  • 做php网站教程wordpress去水印
  • 深圳微网站建设公司哪家好潍坊专业做网站的公司
  • 网站的弹窗广告怎么做软件开发包括
  • 网站开发人员保密做最优秀的自己演讲视频网站
  • 一般做网站要多少钱怎样选择高性价比的建站公司
  • 免费私人网站建设软件高端网站设计平台高端网站设计企业
  • 响应式网站建设的应用场景怎么申请电商平台
  • 怎么做垂直自营网站游戏咨询网站建设目标是什么
  • 建设网站需要给钱吗建立网站三大基础
  • 金融公司网站 htmlwordpress 防火墙
  • 重庆智能建站模板网站投票系统 js