我有一个文件上传控件,我让它变得不可见。
当我点击另一个Button
时,我想为该文件上传控件启用浏览Button
。
我该怎么做?
答案 0 :(得分:1)
首先制作一个像this one
这样的文件加载器要上传文件,您需要做两件事
1)选择文件。 (点击浏览按钮)
2)将其发送到服务器。 (点击上传按钮)
首先让我们编写一个java脚本来执行这些操作。
<script type="text/javascript" >
function uploadImage() {
$('#MainContent_UploadButton').click()
}
function selectFile() {
$('#MainContent_FileUploadControl').click();
}
</script>
现在,只要选择了文件,文件上传控制器就会自动上传
<asp:FileUpload id="MainContent_FileUploadControl" runat="server"
onChange="uploadImage()" class="hidden"/>
然后创建一个新按钮,让它在单击后立即选择该文件。
<asp:Button ID="MainContent_UploadButton" runat="server" Text="Upload File"
OnClientClick="selectFile(); return false;" />
最重要的一点是在onClientClick字段中输入“return false”。它将阻止回发的按钮,让您选择文件而不刷新页面。
现在使用css隐藏不需要的组件,你就完成了!
答案 1 :(得分:0)
我认为这是不可能的。如果脚本可以上传(或至少触发上传过程),那么这可能是一个安全问题。
<强>更新强>
似乎有人developed a solution to hide the upload control。从我读到的内容来看,似乎需要花费一些精力来开发和使用JavaScript。
就个人而言,我不敢保证这适用于所有平台(只需想象有人使用BlackBerry或Windows Phone访问您的网站......),从而避免使用它。
答案 2 :(得分:0)
<asp:FileUpload ID="FileUpload1" runat="server" style="display:none;"/>
<input id="btnFileUpload" type="button" value="Add" runat="server" />
btnFileUpload.Attributes.Add("onclick", "document.getElementById('" + FileUpload1.ClientID + "').click();");