DWZ文件上传,time转化

项目中遇到DWZ文件上传相关问题,所以记录下,至于时间相关的问题经常遇到,特此也做下记录。

DWZ文件上传

首先是.html文件中,应有表单提交上传文件。如下图代码,使用联动文本框显示文件名,点击保存按钮时提交表单。
注意οnsubmit=”return iframeCallback(this);”此处应使用iframeCallback(this)无刷新的表单提交,若是变成validateCallback(this,navTabAjaxDone)则会提示上传失败。
还有就是要注意enctype=”multipart/form-data”不要忘了写。

<form  class="pageForm required-validate" onsubmit="return iframeCallback(this);" 
        method="post" enctype="multipart/form-data"
        action="url" name="form1" novalidate="novalidate">
<tr>
    <td class="L001">上传文件: </td>
        <td class="L002">
           <input type="file" name="fileLocal" onchange="localFileOnChange(this)"/>
           <input type="text" id="fileName" name="fileName" style="width:300px"}/>
        </td>
</tr>
<button type="submit">保存</button>
<button type="button" class="close">关闭</button>

<script type="text/javascript">
// 用户选择文件, 触发文件名文本框变动
function localFileOnChange(sender){
    $("#fileName").attr("value","");
    fn = sender.value.split(/\\|\//)
    $("#fileName").val(fn[fn.length-1]);
}
</script>

到controllers层,接收到相关信息,然后确定文件保存的目录以及文件的命名。首先要根据os.MkdirAll方法创建目录,然后调用SaveToFile方法保存文件(SaveToFile方法的第一个参数为type=”file”的input的name,第二个参数为文件的包含文件名的保存路径)。

fileName := this.GetString("fileName")
dir := fmt.Sprintf("/upload/") //创建目录
fnSplits := strings.Split(fileName, ".")//分割文件名123.png:123,png
// 创建文件夹
err := os.MkdirAll("./static"+dir, 0755)
//保存(上传)文件
err = this.SaveToFile("fileLocal", "./static"+dir+fileName)

time转化

主要是调用DWZ的时间控件之后,要将string类型的时间转为int64类型保存在数据库中。.html中DWZ自带的时间控件如下。

<input type="text" readonly="readonly" maxdate="%y-%M-{%d+90}" mindate="{%y}-%M-%d" datefmt="yyyy-MM-dd" name="deadline" class="required date textInput readonly valid">

到controllers层,接收到相关信息,然后把string类型转化为int64类型。

deadline := util.StringDate2Int64("2006-01-02", this.GetString("deadline"))

其中调用的util中的StringDate2Int64方法具体如下:

// 转化字符串类型日志为int64
func StringDate2Int64(layout, value string) int64 {
    if value == "" {
        return 0
    }
    t, err := time.Parse(layout, value)
    if err != nil {
        return 0
    }
    return t.UnixNano() / 1e6
}

小结

以上就是大概的内容,其实挺简单的。由于个人的知识浅薄,所以下面补充一下html中一些需要注意的地方吧。

补充

<td>
    {{if eq .Status 1}}<font color="red">待审核</font>
    {{else if eq .Status 2}}<font color="green">发布中</font>
    {{end}}
</td>
<td>{{dateformat .UpTime "2006-01-02 15:04:05"}}</td>
<input type="radio" value="1" name="prioity" id="radioType1" {{if eq .pro.Prioity 1}} checked="checked"{{end}}/>

第一个是判断已知条件来显示不同的视图;第二个是规范显示time.Time类型的时间;第三个是根据条件判断该控件的状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值