java百度云文件上传,文件上传 带进度条(多种风格)

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)//  限制1M

{

//  设置路径

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)//1M

{

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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值