我正在添加一项检查以验证在我的Web应用程序中导入的文件的大小。如果文件大小超过4 MB,我需要显示确认弹出窗口,用户是否确定要上传文件。如果用户选择“是”,则会发生默认功能,否则将取消上载。
我正在尝试使用
打开服务器端的确认弹出窗口Page.ClientScript.RegisterStartupScript(typeof(NewDocument), "ValidateFileSize", "<script>ValidateFileSize()</script>");
其中ValidateFileSize()
是显示确认框的JavaScript函数。
但问题是,在我使用隐藏变量弹出确认结果并在“if-else
”条件下使用它之前,服务器端页面的控制向前移动。因此,我无法读取隐藏变量的值并在服务器端跳过上传代码。
我使用隐藏变量的概念,因为javascript element.files.size
在IE8中不起作用。
有人可以建议更好的方法或解决方案。 或者唯一的解决方案是使用.aspx页面作为弹出窗口?
答案 0 :(得分:0)
首先你的问题不明确,我希望你的要求是检查客户端的文件大小。但是你有问题表明你正在寻找如何在javascript中打开弹出窗口。
任何方式,当你提出问题时,
一旦控制进入服务器端,文件上传控件将被刷新,因此最好在javascript中完全检查文件大小,而不是从服务器端调用脚本方法。
下面是一些供您参考的网址。
Get file size before uploading
答案 1 :(得分:0)
您可以使用文字控件并将其html设置为脚本。
e.g。
<asp:Literal ID="LiteralText" runat="server" Text=""></asp:Literal>
然后从服务器端设置Text属性,如下所示
if(FILE SIZE IS > 4MB)
{
LiteralText.Text = "<script>ValidateFileSize()</script>";
}
else{
//UPLOAD FILE LOGIC HERE
}