作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用表单和 onSubmit 方法上传文件,但是在提交并清除输入标签后,文件将以某种空白格式保存,大小为 0KB。当我注释掉该行以清除输入标签时,Excel 文件已正确加载。所以这里的主要问题是我清除输入标签错误的方式或者我在错误的位置清除它的方式。
经过一些研究,我发现了两个我犯的错误。首先,文件以 0kb 大小的不同格式保存,因为我在实际上传之前清除了输入字段,因此程序不知道文件名或文件类型。我改变了这一点并清除了 onSubmit 函数中的输入字段
<iframe width="0" height="0" border="0" name="dummyframe"
style="display: none;" id="dummyframe"></iframe>
@*<form id="uploadForm" name="form1" method="post"
enctype="multipart/form-data" action="/api/BulkUpload"
target="dummyframe" onsubmit="submitFunction()">*@
<form id="uploadForm" name="form1" method="post"
enctype="multipart/form-data" action="/api/BulkUpload"
target="dummyframe" onsubmit="return Validate(this);">
<div>
</div>
<div id="inputLabel">
<input id="fileinput" name="image1" type="file" />
</div>
<div>
<span class="btn btn-success fileinput-button">
<i class="icon-plus icon-white"></i>
<span>upload file</span>
<input id="submitButton" class="submit" type="submit"
value="ok" @*onclick="setTimeout(clearLabel,3000)"*@ />
</span>
</div>
</form>
var _validFileExtensions = [".xls", ".xlsx"];
function Validate(oForm) {
//var file = input.file[0];
var arrInputs = oForm.getElementsByTagName("input");
for (var i = 0; i < arrInputs.length; i++) {
var oInput = arrInputs[i];
if (oInput.type == "file") {
var sFileName = oInput.value;
if (sFileName.length > 0) {
var blnValid = false;
for (var j = 0; j < _validFileExtensions.length; j++) {
var sCurExtension = _validFileExtensions[j];
if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length)
.toLowerCase() == sCurExtension.toLowerCase()) {
blnValid = true;
$('#fileinput').val('');
break;
}
}
if (!blnValid) {
$.msgbox("Sorry, " + sFileName + " is invalid, allowed extensions are: "
+ _validFileExtensions.join(", "));
return false;
}
//if (file.size >= 5000000)
//if (oInput.size >= 5242880)
if (oInput.size >= 50000)
{
$.msgbox("Sorry, " + sFileName + " maximum file size is 5MB ");
return false;
}
}
}
}
return true;
}
最佳答案
上传的工作方式是
您的更多代码会有所帮助,但您似乎在传输(步骤 4)之前删除了输入的值(步骤 3)。最好在您的请求得到可处理的响应(或超时)后执行此操作(第 5 步)。
关于javascript - 如何通过表单上传文件后清除输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53191434/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!