我有两个asp控件:FileUpload和Button 在FileUpload我添加uploadify属性,它的工作原理 我还想使用该按钮对代码隐藏进行一些操作,然后调用文件上传,但文件弹出窗口不会出现
出于测试目的,我试图减少所有客户端,但它仍然无法工作......
这是我的三个标签
<asp:Button Text="Browse" OnClick="Carica_File_Click" runat="server" ID="UploadButton" CssClass="Load_Button" align="center"/>
<asp:Button Text="BrowseFromClient" OnClientClick="openfileDialog();" runat="server" ID="Button1" CssClass="Load_Button" align="center"/>
<asp:FileUpload runat="server" ID="FileUploadMain" align="center" />
客户端
<script type="text/javascript">
$(window).load(
function () {
$("#ContentPlaceHolderMain_FileUploadMain").uploadify({
'swf': '../Scripts/uploadify.swf',
'cancelImg': '../images/uploadify-cancel.png',
'buttonText': 'Browse Files',
'uploader': '../FrontEnd/Upload.ashx<%=GetUploadParams()%>',
'folder': '',
'fileDesc': 'UPLOAD FILES',
'fileExt': '*.jpg;*.jpeg;*.gif;*.png;*.pdf;*.doc;*.docx',
'multi': true,
'auto': true,
'buttonImage': '<%=GetUploadFileUrl()%>',
'width': 217,
'removeTimeout': 1,
'removeCompleted': false,
'buttonClass': '',
'onUploadSuccess': function () {
location.reload(true);
}
});
}
);
</script>
<script>
function openfileDialog() {
$("#FileUploadMain").click();
}
</script>
服务器端
Protected Sub Carica_File_Click(sender As Object, e As EventArgs)
Dim ClientID As String = FileUploadMain.ClientID
ScriptManager.RegisterStartupScript(Me, Page.GetType, "Script", "document.getElementById('#" & ClientID & "').click();", True)
...code
End Sub
我哪里出错了?
答案 0 :(得分:0)
最后我做了一个解决方法:
执行代码我强制在文件成功上传的情况下使用回发标记,然后在后面的代码上的page_load上处理
$(window).load(
function () {
$("#ContentPlaceHolderMain_FileUploadMain").uploadify({
....parameters
'onUploadSuccess': function (file, data, response) {
location.reload(true);
var ObjF = file.name;
__doPostBack('FileLoaded', ObjF);
}
});
}
);
对于点击,我认为用户的安全性是不可能的(因为代码或隐藏按钮处理的上传点击可能很危险) 所以我隐藏了uploadify按钮,并为其添加了一个我可以处理的自定义按钮
<div style="position:relative;" class="row box_upload">
<div style="width:100%;">
<asp:FileUpload runat="server" ID="FileUploadMain" align="center" />
</div>
<asp:Button text="Browse" style="width:100%;height:100%;position:absolute;top:0;left:0;" runat="server" ID="UploadButton" return false;" ></asp:button>
</div>
缺点是有了这个i客户端点击不能在按钮上使用,因为它被uploadify对象点击覆盖但是我会在必要时留下它(并且使用回发方法我不需要任何东西别的)