媒资系统实现附件在点击“提交”按钮时才保存文件到服务器指定目录的相关信息:
1、媒资上载附件采用的是swfupload控件,这个控件是在用js上传文件到指定目录,这是客户操作。
2、媒资入库的时候不仅仅是保存文件到指定目录,还要保存数据到数据库,这个要在服务器端代码操作。
3、实现方法有二、
1)、把服务器端的按钮控件写两个点击事件:一个是客户端点击事件,一个是服务器点击事件,但发现和这个控件接合起来不能实现。因为这个控件保存文件是一个异步的处理,在调
用了事件后不能很好的返回相应的值(返回true时会调用服务器事件,false就不会调用)因为它调用客户端事件后就跳出这个方法去另外一个方法中执行保存程序了。
2)、用了一个客户端按钮和一个不可见的服务器端按钮(display:none或width:0px,不能用visible=false,因为如果是false客户端就找不到这个控件了),在客户端事件处理完成后调
用服务器控件的click事件,就可以了。
.aspx中的代码:
<input type="button" id="btnUpload" value="提交" style="width:133px" />
<asp:Button ID="btnSubmit" runat="server" Text="提交" style="display:none" OnClick="btnSubmit_Click" />
.js中的代码:
function swfUploadLoaded() {
var self = this;
//一起上传按钮
document.getElementById("btnUpload").onclick = function() { self.startUpload();};
}
// This event comes from the Queue Plugin
function queueComplete(numFilesUploaded) {
//调用服务器端控件方法
document.getElementById("btnSubmit").click();
// var status = document.getElementById("divStatus");
// status.innerHTML = numFilesUploaded + " file" + (numFilesUploaded === 1 ? "" : "s") + " uploaded.";
}
.cs中的代码
protected void btnSubmit_Click(object sender, EventArgs e)
{
。。。。。
//操作成功后跳转到另一个页面
}