110,534
社区成员
发帖
与我相关
我的任务
分享
//打开源文件
FileInfo fileToOpen = new FileInfo(sourceFileName);
//保存到目标文件
FileInfo fileToSave = new FileInfo(destFileName);
//读源文件
FileStream streamToRead = fileToOpen.Open(FileMode.Open, FileAccess.Read, FileShare.Read);
//打开目标文件
FileStream streamToWrite = fileToSave.OpenWrite();
//设置正常一次读取的字节数
int bufferSize = 4096;
//设置正常写文件时的字节数组
byte[] bufferNormal = new byte[bufferSize];
//总共写文件的次数
long readTimes = streamToRead.Length / bufferSize;
//正常写文件N次后剩余的字节数目
int remainderSize = Convert.ToInt32(streamToRead.Length % bufferSize);
//设置剩余写文件时的字节数组
byte[] bufferRemainder = new byte[remainderSize];
//循环写数据到目标文件中
for (long i = 0; i <= readTimes; i++)
{
//读源文件
streamToRead.Read(bufferNormal, 0, bufferSize);
//写数据到目标文件
streamToWrite.Write(bufferNormal, 0, bufferSize);
//s设置进度条的值
ProgressBar.Value = Convert.ToInt32(i * 100 / readTimes);
Application.DoEvents();
//设置Lable上的进度值
lblProgress.Text = ProgressBar.Value.ToString() + "%";
}
//剩余字节的读和写
if (remainderSize != 0)
{
streamToRead.Read(bufferRemainder, 0, remainderSize);
streamToWrite.Write(bufferRemainder, 0, remainderSize);
}
//关闭文件的读写
streamToRead.Close();
streamToWrite.Close();
/// <summary>
/// 上传视频
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (Request.Files[0].FileName != null)
{
string saveName = DateTime.Now.ToString("yyyyMMddHHmmssffff");
string m_strExtension = Request.Files[0].FileName.Substring(Request.Files[0].FileName.LastIndexOf(".") + 1).ToLower();
if (m_strExtension == "asf" || m_strExtension == "avi" || m_strExtension == "mpg" || m_strExtension == "3gp" || m_strExtension == "mov" || m_strExtension == "mp4" || m_strExtension == "flv")
{
if (Request.Files[0].ContentLength <= 5242880)
{
}
string fileName = PublicMethod.GetFileName(Request.Files[0].FileName);// GetFileName();
path = DateTime.Now.ToBinary().ToString() + "." + m_strExtension;
upFileName = Server.MapPath("~/" + PublicMethod.upFile + saveName + "." + m_strExtension);
Request.Files[0].SaveAs(Server.MapPath("~/" + PublicMethod.upFile + saveName + "." + m_strExtension));
size = Convert.ToString(Request.Files[0].ContentLength);
string imgName = saveName + ".jpg";//图片文件名;
string playName = saveName + ".flv";
string playFile = Server.MapPath("~/" + PublicMethod.playFile + saveName);
string imgFile = Server.MapPath("~/" + PublicMethod.imgFile + saveName);
PublicMethod pm = new PublicMethod();
if (m_strExtension == "flv")
{//直接拷贝到播放文件夹下
System.IO.File.Copy(upFileName, playFile + ".flv");
pm.CatchImg(upFileName, imgFile);
}
string Extension = CheckExtension(m_strExtension);
if (Extension == "ffmpeg")
{
pm.ChangeFilePhy(upFileName, playFile, imgFile);
}
else if (Extension == "mencoder")
{
// pm.MChangeFilePhy(upFileName, playFile, imgFile);
MessageBox.Show(this, "You can upload only asf, avi, MPG then larger engines, 3gp, mov, mp4 video format, FLV");
}
Session["file"] = fileName;
me.FMediaPlayPath = PublicMethod.playFile + playName;
me.FMediaImgPath = PublicMethod.imgFile + imgName;
me.Upurl = PublicMethod.upFile + path;
}
else
{
MessageBox.Show(this, "You can upload only asf, avi, MPG then larger engines, 3gp, mov, mp4 video format, FLV.");
return;
}
}
}