111,094
社区成员




void worker_DoWork(object sender, DoWorkEventArgs e)
{
// 要上传的文件地址
FileStream fs = File.OpenRead(fileInfoIO.FullName);
// 实例化服务客户的
ServiceFileClient client = new ServiceFileClient();
try
{
string path = e.Argument.ToString();
int maxSiz = 1024 * 100;
System.IO.FileInfo fileInfoIO = new System.IO.FileInfo(path);
// 根据文件名获取服务器上的文件
CustomFileInfo file = client.GetFileInfo(fileInfoIO.Name);
if (file == null)
{
file = new CustomFileInfo();
file.OffSet = 0;
}
file.Name = fileInfoIO.Name;
file.Length = fs.Length;
if (file.Length == file.OffSet) //如果文件的长度等于文件的偏移量,说明文件已经上传完成
{
MessageBox.Show("该文件已存在");
e.Result = false; // 设置异步操作结果为false
}
else
{
while (file.Length != file.OffSet)
{
file.SendByte = new byte[file.Length - file.OffSet <= maxSiz ? file.Length - file.OffSet : maxSiz]; //设置传递的数据的大小
fs.Position = file.OffSet; //设置本地文件数据的读取位置
fs.Read(file.SendByte, 0, file.SendByte.Length);//把数据写入到file.Data中
file = client.UpLoadFileInfo(file); //上传
//int percent = (int)((double)file.OffSet / (double)((long)file.Length)) * 100;
int percent = (int)(((double)file.OffSet / (double)((long)file.Length)) * 100);
(sender as BackgroundWorker).ReportProgress(percent);
}
// 移动文件到临时目录(此部分创建可以使用sqlserver数据库代替)
string address = string.Format(@"{0}\{1}", Helper.ServerFolderPath, file.Name);
//File.Create(address);
fileInfoIO.CopyTo(address, true);
LoadUpLoadFile();
e.Result = true;
}
// 启用上传按钮
if (this.btnUpload.InvokeRequired)
{
this.btnUpload.Invoke((ThreadStart)delegate
{
this.btnUpload.Enabled = true;
});
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
fs.Close();
client.Close();
client.Abort();
}
public CustomFileInfo UpLoadFileInfo(CustomFileInfo fileInfo)
{
// 获取服务器文件上传路径
string fileUpLoadPath = System.Web.Hosting.HostingEnvironment.MapPath("~/UpLoadFile/");
// 如需指定新的文件夹,需要进行创建操作。
Console.WriteLine("1");
// 创建FileStream对象
FileStream fs = new FileStream(fileUpLoadPath + fileInfo.Name, FileMode.OpenOrCreate);
Console.WriteLine("2");
long offSet = fileInfo.OffSet;
// 使用提供的流创建BinaryWriter对象
var binaryWriter = new BinaryWriter(fs, Encoding.UTF8);
binaryWriter.Seek((int)offSet, SeekOrigin.Begin);
binaryWriter.Write(fileInfo.SendByte);
fileInfo.OffSet = fs.Length;
fileInfo.SendByte = null;
binaryWriter.Close();
fs.Close();
Console.WriteLine("2");
return fileInfo;
}
我使用的wcf上传文件。[/quote]
void worker_DoWork(object sender, DoWorkEventArgs e)
{
// 要上传的文件地址
FileStream fs = File.OpenRead(fileInfoIO.FullName);
// 实例化服务客户的
ServiceFileClient client = new ServiceFileClient();
try
{
string path = e.Argument.ToString();
int maxSiz = 1024 * 100;
System.IO.FileInfo fileInfoIO = new System.IO.FileInfo(path);
// 根据文件名获取服务器上的文件
CustomFileInfo file = client.GetFileInfo(fileInfoIO.Name);
if (file == null)
{
file = new CustomFileInfo();
file.OffSet = 0;
}
file.Name = fileInfoIO.Name;
file.Length = fs.Length;
if (file.Length == file.OffSet) //如果文件的长度等于文件的偏移量,说明文件已经上传完成
{
MessageBox.Show("该文件已存在");
e.Result = false; // 设置异步操作结果为false
}
else
{
while (file.Length != file.OffSet)
{
file.SendByte = new byte[file.Length - file.OffSet <= maxSiz ? file.Length - file.OffSet : maxSiz]; //设置传递的数据的大小
fs.Position = file.OffSet; //设置本地文件数据的读取位置
fs.Read(file.SendByte, 0, file.SendByte.Length);//把数据写入到file.Data中
file = client.UpLoadFileInfo(file); //上传
//int percent = (int)((double)file.OffSet / (double)((long)file.Length)) * 100;
int percent = (int)(((double)file.OffSet / (double)((long)file.Length)) * 100);
(sender as BackgroundWorker).ReportProgress(percent);
}
// 移动文件到临时目录(此部分创建可以使用sqlserver数据库代替)
string address = string.Format(@"{0}\{1}", Helper.ServerFolderPath, file.Name);
//File.Create(address);
fileInfoIO.CopyTo(address, true);
LoadUpLoadFile();
e.Result = true;
}
// 启用上传按钮
if (this.btnUpload.InvokeRequired)
{
this.btnUpload.Invoke((ThreadStart)delegate
{
this.btnUpload.Enabled = true;
});
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
fs.Close();
client.Close();
client.Abort();
}
public CustomFileInfo UpLoadFileInfo(CustomFileInfo fileInfo)
{
// 获取服务器文件上传路径
string fileUpLoadPath = System.Web.Hosting.HostingEnvironment.MapPath("~/UpLoadFile/");
// 如需指定新的文件夹,需要进行创建操作。
Console.WriteLine("1");
// 创建FileStream对象
FileStream fs = new FileStream(fileUpLoadPath + fileInfo.Name, FileMode.OpenOrCreate);
Console.WriteLine("2");
long offSet = fileInfo.OffSet;
// 使用提供的流创建BinaryWriter对象
var binaryWriter = new BinaryWriter(fs, Encoding.UTF8);
binaryWriter.Seek((int)offSet, SeekOrigin.Begin);
binaryWriter.Write(fileInfo.SendByte);
fileInfo.OffSet = fs.Length;
fileInfo.SendByte = null;
binaryWriter.Close();
fs.Close();
Console.WriteLine("2");
return fileInfo;
}
我使用的wcf上传文件。
void worker_DoWork(object sender, DoWorkEventArgs e)
{
// 要上传的文件地址
FileStream fs = File.OpenRead(fileInfoIO.FullName);
// 实例化服务客户的
ServiceFileClient client = new ServiceFileClient();
try
{
string path = e.Argument.ToString();
int maxSiz = 1024 * 100;
System.IO.FileInfo fileInfoIO = new System.IO.FileInfo(path);
// 根据文件名获取服务器上的文件
CustomFileInfo file = client.GetFileInfo(fileInfoIO.Name);
if (file == null)
{
file = new CustomFileInfo();
file.OffSet = 0;
}
file.Name = fileInfoIO.Name;
file.Length = fs.Length;
if (file.Length == file.OffSet) //如果文件的长度等于文件的偏移量,说明文件已经上传完成
{
MessageBox.Show("该文件已存在");
e.Result = false; // 设置异步操作结果为false
}
else
{
while (file.Length != file.OffSet)
{
file.SendByte = new byte[file.Length - file.OffSet <= maxSiz ? file.Length - file.OffSet : maxSiz]; //设置传递的数据的大小
fs.Position = file.OffSet; //设置本地文件数据的读取位置
fs.Read(file.SendByte, 0, file.SendByte.Length);//把数据写入到file.Data中
file = client.UpLoadFileInfo(file); //上传
//int percent = (int)((double)file.OffSet / (double)((long)file.Length)) * 100;
int percent = (int)(((double)file.OffSet / (double)((long)file.Length)) * 100);
(sender as BackgroundWorker).ReportProgress(percent);
}
// 移动文件到临时目录(此部分创建可以使用sqlserver数据库代替)
string address = string.Format(@"{0}\{1}", Helper.ServerFolderPath, file.Name);
//File.Create(address);
fileInfoIO.CopyTo(address, true);
LoadUpLoadFile();
e.Result = true;
}
// 启用上传按钮
if (this.btnUpload.InvokeRequired)
{
this.btnUpload.Invoke((ThreadStart)delegate
{
this.btnUpload.Enabled = true;
});
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
fs.Close();
client.Close();
client.Abort();
}
public CustomFileInfo UpLoadFileInfo(CustomFileInfo fileInfo)
{
// 获取服务器文件上传路径
string fileUpLoadPath = System.Web.Hosting.HostingEnvironment.MapPath("~/UpLoadFile/");
// 如需指定新的文件夹,需要进行创建操作。
Console.WriteLine("1");
// 创建FileStream对象
FileStream fs = new FileStream(fileUpLoadPath + fileInfo.Name, FileMode.OpenOrCreate);
Console.WriteLine("2");
long offSet = fileInfo.OffSet;
// 使用提供的流创建BinaryWriter对象
var binaryWriter = new BinaryWriter(fs, Encoding.UTF8);
binaryWriter.Seek((int)offSet, SeekOrigin.Begin);
binaryWriter.Write(fileInfo.SendByte);
fileInfo.OffSet = fs.Length;
fileInfo.SendByte = null;
binaryWriter.Close();
fs.Close();
Console.WriteLine("2");
return fileInfo;
}
我使用的wcf上传文件。[/quote][/quote]
发你qq邮箱里吧[/quote]
void worker_DoWork(object sender, DoWorkEventArgs e)
{
// 要上传的文件地址
FileStream fs = File.OpenRead(fileInfoIO.FullName);
// 实例化服务客户的
ServiceFileClient client = new ServiceFileClient();
try
{
string path = e.Argument.ToString();
int maxSiz = 1024 * 100;
System.IO.FileInfo fileInfoIO = new System.IO.FileInfo(path);
// 根据文件名获取服务器上的文件
CustomFileInfo file = client.GetFileInfo(fileInfoIO.Name);
if (file == null)
{
file = new CustomFileInfo();
file.OffSet = 0;
}
file.Name = fileInfoIO.Name;
file.Length = fs.Length;
if (file.Length == file.OffSet) //如果文件的长度等于文件的偏移量,说明文件已经上传完成
{
MessageBox.Show("该文件已存在");
e.Result = false; // 设置异步操作结果为false
}
else
{
while (file.Length != file.OffSet)
{
file.SendByte = new byte[file.Length - file.OffSet <= maxSiz ? file.Length - file.OffSet : maxSiz]; //设置传递的数据的大小
fs.Position = file.OffSet; //设置本地文件数据的读取位置
fs.Read(file.SendByte, 0, file.SendByte.Length);//把数据写入到file.Data中
file = client.UpLoadFileInfo(file); //上传
//int percent = (int)((double)file.OffSet / (double)((long)file.Length)) * 100;
int percent = (int)(((double)file.OffSet / (double)((long)file.Length)) * 100);
(sender as BackgroundWorker).ReportProgress(percent);
}
// 移动文件到临时目录(此部分创建可以使用sqlserver数据库代替)
string address = string.Format(@"{0}\{1}", Helper.ServerFolderPath, file.Name);
//File.Create(address);
fileInfoIO.CopyTo(address, true);
LoadUpLoadFile();
e.Result = true;
}
// 启用上传按钮
if (this.btnUpload.InvokeRequired)
{
this.btnUpload.Invoke((ThreadStart)delegate
{
this.btnUpload.Enabled = true;
});
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
fs.Close();
client.Close();
client.Abort();
}
public CustomFileInfo UpLoadFileInfo(CustomFileInfo fileInfo)
{
// 获取服务器文件上传路径
string fileUpLoadPath = System.Web.Hosting.HostingEnvironment.MapPath("~/UpLoadFile/");
// 如需指定新的文件夹,需要进行创建操作。
Console.WriteLine("1");
// 创建FileStream对象
FileStream fs = new FileStream(fileUpLoadPath + fileInfo.Name, FileMode.OpenOrCreate);
Console.WriteLine("2");
long offSet = fileInfo.OffSet;
// 使用提供的流创建BinaryWriter对象
var binaryWriter = new BinaryWriter(fs, Encoding.UTF8);
binaryWriter.Seek((int)offSet, SeekOrigin.Begin);
binaryWriter.Write(fileInfo.SendByte);
fileInfo.OffSet = fs.Length;
fileInfo.SendByte = null;
binaryWriter.Close();
fs.Close();
Console.WriteLine("2");
return fileInfo;
}
我使用的wcf上传文件。[/quote][/quote]
发你qq邮箱里吧
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTTP断点续传控件与MySQL数据库演示页面(UTF-8)</title>
<link href="HttpUploader/HttpUploader.css" type="text/css" rel="Stylesheet"/>
<script type="text/javascript" charset="utf-8" src="HttpUploader/FileLister.js"></script>
<script type="text/javascript" charset="utf-8" src="HttpUploader/HttpUploader.js"></script>
<script type="text/javascript" charset="utf-8" src="HttpUploader/combinbox.js"></script>
<script type="text/javascript" src="HttpUploader/jquery-1.3.2.min.js"></script>
<script language="javascript" type="text/javascript">
var cbItemLast = null;
var cbMgr = new CombinBoxMgr();
$(document).ready(function()
{
cbMgr.LoadInControl("FilePanel");
cbMgr.Init();
});
</script>
</head>
<body>
<div id="FilePanel"></div>
</body>
</html>