设为首页 加入收藏

TOP

Beego 学习笔记12:文件的操作(一)
2017-12-11 09:18:58 】 浏览:941
Tags:Beego 学习 笔记 文件 操作

文件的操作

1>     此事例操作的是text文件

2>     文件的操作有读取text内容,将内容写入到文件中,删除文件,创建文件

3>     新建一个控制器,名为rwfile.go.其代码如下:

package controllers

import (
	"fmt"
	"os"
	"io/ioutil"
	"github.com/astaxie/beego"
)

type ReadController struct {
	beego.Controller
}

//上传下载文件的页面
func (c *ReadController) Get() {
	
	c.TplName = "filerw.html"
}
//创建文件
type CreateController struct {
	beego.Controller
}
func (c *CreateController) Post(){
     //创建文件
	file, error := ioutil.TempFile("static/txtfile", "tmp")
	//文件关闭
	defer file.Close()
	if error != nil {
	   fmt.Println("创建文件失败")
	}
	c.Data["json"]=map[string]interface{}{"data":file.Name()};
	c.ServeJSON();
}
//写入文件
type WriteController struct {
	beego.Controller
}
func (c *WriteController) Post() { 
	confPath := c.GetString("path")
	info:=c.GetString("info")
	content,err := parseWriteConfig(confPath,info)
	if err != nil {
		fmt.Println(err)
    }
	fmt.Println(content)
	c.Data["json"]=map[string]interface{}{"data":string(content)};
	c.ServeJSON();
}

//写入text文件内容  
func parseWriteConfig(confPath,info string) ([]byte,error) {
	fl, err := os.OpenFile(confPath, os.O_APPEND|os.O_CREATE, 0644)
	if err != nil {
		fmt.Println("打开文件失败")
	}
	defer fl.Close()
	byteinfo:=[]byte (info)
	n, err := fl.Write(byteinfo)
	if err == nil && n < len(byteinfo) {
		fmt.Println("写入失败")
		fmt.Println(err)
	}
	return byteinfo, err
}

//读取文件内容
func (c *ReadController) Post() { 
	confPath := c.GetString("path")
	fmt.Println("文件的地址:")
	fmt.Println(confPath)
	content,err := ReadFile(confPath)
	if err != nil {
		c.Data["data"]="";
		fmt.Println(err) 
    } else{
		c.Data["data"]=content;
	}
	fmt.Println(content)
	c.Data["json"]=map[string]interface{}{"data":content};
	c.ServeJSON();
}
//解析text文件内容  
func ReadFile(path string) (str string, err error) {
	//打开文件的路径
	fi, err := os.Open(path)
	if err!=nil{
		fmt.Println("打开文件失败")
		fmt.Println(err)
	}
	defer fi.Close()
	//读取文件的内容
	fd, err := ioutil.ReadAll(fi)
	if err!=nil{
		fmt.Println("读取文件失败")
		fmt.Println(err)
	}
    str = string(fd)
    return str,err
}
//删除文件
type DeleteController struct {
	beego.Controller
}
func (c *DeleteController) Post(){
	isdel:=false;
	file:=c.GetString("path");           //源文件路径
    err := os.Remove(file)               //删除文件
    if err != nil {
        //删除失败,输出错误详细信息
        fmt.Println(err)
	}else {
        //如果删除成功则输出 
		isdel=true
    }
	c.Data["json"]=map[string]interface{}{"data":isdel};
	c.ServeJSON();
}

  

4>     新建一个filerw.html页面作为显示.其代码如下:

 

<!DOCTYPE html>
 
<html>
      <head>
        <title>首页 - 用户列表页面</title>
        <link rel="shortcut icon" href="/static/img/favicon.png" /> 
        <link rel="stylesheet" href="/static/boots
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Beego 学习笔记14:Session控制 下一篇Beego 学习笔记10:Easyui使用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目