-- 作者:乐魔舞
-- 发布时间:2010/7/2 11:13:24
--
部分代码:
- <form id="form1" runat="server">
- <asp:ScriptManager ID="scriptManager" runat="server" EnablePageMethods="true" />
-
- <script type="text/javascript">
- var intervalID = 0;
- var progressBar;
- var fileUpload;
- var form;
- // 进度条
- function pageLoad(){
- $addHandler($get(\'upload\'), \'click\', onUploadClick);
- progressBar = $find(\'progress\');
- }
- // 注册表单
- function register(form, fileUpload){
- this.form = form;
- this.fileUpload = fileUpload;
- }
- //上传验证
- function onUploadClick() {
- var vaild = fileUpload.value.length > 0;
- if(vaild){
- $get(\'upload\').disabled = \'disabled\';
- updateMessage(\'info\', \'初始化上传...\');
- //提交上传
- form.submit();
- // 隐藏frame
- Sys.UI.DomElement.addCssClass($get(\'uploadFrame\'), \'hidden\');
- // 0开始显示进度条
- progressBar.set_percentage(0);
- progressBar.show();
- // 上传过程
- intervalID = window.setInterval(function(){
- PageMethods.GetUploadStatus(function(result){
- if(result){
- // 更新进度条为新值
- progressBar.set_percentage(result.percentComplete);
- //更新信息
- updateMessage(\'info\', result.message);
-
- if(result == 100){
- // 自动消失
- window.clearInterval(intervalID);
- }
- }
- });
- }, 500);
- }
- else{
- onComplete(\'error\', \'您必需选择一个文件\');
- }
- }
-
- function onComplete(type, msg){
- // 自动消失
- window.clearInterval(intervalID);
- // 显示消息
|
-- 作者:乐魔舞
-- 发布时间:2010/7/2 11:14:48
--
upload.aspx:
- if (this.IsPostBack)
- {
- UploadInfo uploadInfo = this.Session["UploadInfo"] as UploadInfo;
- if (uploadInfo == null)
- {
-
- const string js = "window.parent.onComplete(\'error\', \'无法上传文件。请刷新页面,然后再试一次);";
- ScriptManager.RegisterStartupScript(this, typeof(upload_aspx), "progress", js, true);
- }
- else
- {
-
- uploadInfo.IsReady = false;
-
-
- if (this.fileUpload.PostedFile != null && this.fileUpload.PostedFile.ContentLength > 0
-
- && this.fileUpload.PostedFile.ContentLength < 1048576)
- {
-
- string path = this.Server.MapPath(@"Uploads");
- string fileName = Path.GetFileName(this.fileUpload.PostedFile.FileName);
-
-
- uploadInfo.ContentLength = this.fileUpload.PostedFile.ContentLength;
- uploadInfo.FileName = fileName;
- uploadInfo.UploadedLength = 0;
-
-
- uploadInfo.IsReady = true;
-
-
- int bufferSize = 1;
- byte[] buffer = new byte[bufferSize];
-
-
- using (FileStream fs = new FileStream(Path.Combine(path, fileName), FileMode.Create))
- {
- while (uploadInfo.UploadedLength < uploadInfo.ContentLength)
- {
-
- int bytes = this.fileUpload.PostedFile.InputStream.Read(buffer, 0, bufferSize);
-
- fs.Write(buffer, 0, bytes);
-
- uploadInfo.UploadedLength += bytes;
-
-
- System.Threading.Thread.Sleep(100);
- }
- }
-
-
- File.Delete(Path.Combine(path, fileName));
-
-
- const string js = "window.parent.onComplete(\'success\', \'{0} 已成功上传\');";
- ScriptManager.RegisterStartupScript(this, typeof(upload_aspx), "progress", string.Format(js, fileName), true);
- }
- else
- {
- if (this.fileUpload.PostedFile.ContentLength >= 1048576)
- {
- const string js = "window.parent.onComplete(\'error\', \'超出上传文件限制大小,请重新选择\');";
- ScriptManager.RegisterStartupScript(this, typeof(upload_aspx), "progress", js, true);
- }
- else
- {
- const string js = "window.parent.onComplete(\'error\', \'上传文件出错\');";
- ScriptManager.RegisterStartupScript(this, typeof(upload_aspx), "progress", js, true);
- }
- }
- uploadInfo.IsReady = false;
- }
- }
URL:http://www.aspxcs.net/HTML/2231191498.html
[此贴子已经被作者于2010-7-2 11:15:19编辑过]
|