怎么样通过golang获取上传文件大小的实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么样通过golang获取上传文件大小的实现相关的知识,希望对你有一定的参考价值。

参考技术A

前端

<form enctype="multipart/form-data" method="post" action="youruri">
<input type="file" name="fileA" id="fileA">
<button type="submit">提交</button>
</form>

后端gin

type Sizer interface 
Size() int64

file, header, err := c.Request.FormFile("fileA")
if err != nil 
return "", err

fsize := file.(Sizer).Size()
if fsize > FILEMAXSIZE 
return "", fmt.Errorf("文件太大")

参考技术B file, header, err := c.Request.FormFile("fileA")
if err != nil 
    return "", err


if header.Size > FILEMAXSIZE 
    return "", fmt.Errorf("文件太大")

IE8以上,用js获取上传文件大小和绝对路径的实现代码

js实现获取文件大小:
var maxsize = 2*1024*1024;//定义最大为2M。
var errMsg = "上传的附件文件不能超过2M!";
var tipMsg = "您的浏览器暂不支持计算上传文件的大小,确保上传文件不要超过2M,建议使用IE、FireFox、Chrome浏览器。";
var browserCfg = ;
var ua = window.navigator.userAgent;
if (ua.indexOf("MSIE")>=1)
browserCfg.ie = true;
else if(ua.indexOf("Firefox")>=1)
browserCfg.firefox = true;
else if(ua.indexOf("Chrome")>=1)
browserCfg.chrome = true;


function checkfile()
try
var obj_file = document.getElementById("fileuploade");
if(obj_file.value=="")
alert("请先选择上传文件");
return;

var filesize = 0;
if(browserCfg.firefox || browserCfg.chrome )
filesize = obj_file.files[0].size;
else if(browserCfg.ie)
var obj_img = document.getElementById(\'tempimg\');
obj_img.dynsrc=obj_file.value;
filesize = obj_img.fileSize;
else
alert(tipMsg);
return;

if(filesize==-1)
alert(tipMsg);
return;
else if(filesize>maxsize)
alert(errMsg);
return;
else
alert("文件大小符合要求");
return;

catch(e)
alert(e);


js实现获取绝对路径:

function readFile(fileBrowser)
if (navigator.userAgent.indexOf("MSIE") != -1)
return getFilePath(fileBrowser);
else if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Mozilla") != -1)
return getFilePathWithFF(fileBrowser);
else
return;


function getFilePath(fileBrowser)
alert("ie");
alert(fileBrowser.value);


function getFilePathWithFF(fileBrowser)
try
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
catch(e)
alert(\'由于浏览器安全问题 请按照以下设置 [1] 地址栏输入 "about:config" ; [2] 右键 新建 -> 布尔值 ; [3] 输入 "signed.applets.codebase_principal_support" (忽略引号).\');
return;

var fileName = fileBrowser.value;
alert("firefox");
alert( fileName);
参考技术A var f = document.getElementById("file1").files;
f[0].size表示第一个文件的大小。。支持IE10以上版本。。。路径好像受保护的。。没法得到。。

以上是关于怎么样通过golang获取上传文件大小的实现的主要内容,如果未能解决你的问题,请参考以下文章

golang gin框架中实现大文件的流式上传

获取上传图片的像素大小

SpringBoot当文件上传大小限制超过获取MultipartException而不是MaxUploadSizeExceededException

求php怎么实现web端上传超大文件

jeecg 怎么 解除上传文件大小限制

MVC中通过jquery实现图片预览上传,并对文件类型大小进行判断(极简)