62,074
社区成员
发帖
与我相关
我的任务
分享
protected void Uploading(object sender, EventArgs e)
{
string fileName = file1.PostedFile.FileName;
Uri siteUri = new Uri(hoster + "/" + Path.GetFileName(fileName));
FtpWebRequest request = FtpWebRequest.Create(siteUri) as FtpWebRequest;
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(user, pwd);
request.UsePassive = false;//true;
request.UseBinary = true;
request.KeepAlive = false;
FileStream stream = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Stream reqStream = request.GetRequestStream();
int chunksize = 4096;
byte[] buffer = new byte[chunksize];
int bytesRead = stream.Read(buffer, 0, chunksize);
while (bytesRead > 0)
{
reqStream.Write(buffer, 0, bytesRead);
bytesRead = stream.Read(buffer, 0, chunksize);
}
stream.Close();
reqStream.Close();
}
try
{
/*我加的代码
bytesSent += readBytes;
size.InnerText = bytesSent
percent.InnerText = string.Format("{0:0.00}%", (float)bytesSent * 100 / fileSize);
xml.Save(Server.MapPath("upload.xml"));
完*/
}
catch(Exception e)
{}
try
{
requestStream = state.Request.EndGetRequestStream(ar);
// Copy the file contents to the request stream.
const int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
int count = 0;
int readBytes = 0;
FileStream stream = File.OpenRead(state.FileName);
do
{
readBytes = stream.Read(buffer, 0, bufferLength);
try
{
/*我加的代码
bytesSent += readBytes;
size.InnerText = bytesSent
percent.InnerText = string.Format("{0:0.00}%", (float)bytesSent * 100 / fileSize);
xml.Save(Server.MapPath("upload.xml"));
完*/
}
catch(Exception e)
{}
requestStream.Write(buffer, 0, readBytes);
count += readBytes;
}
while (readBytes != 0);
Console.WriteLine ("Writing {0} bytes to the stream.", count);
// IMPORTANT: Close the request stream before sending the request.
requestStream.Close();
// Asynchronously get the response to the upload request.
state.Request.BeginGetResponse(
new AsyncCallback (EndGetResponseCallback),
state
);
}
// Return exceptions to the main application thread.
catch (Exception e)
{
Console.WriteLine("Could not get the request stream.");
state.OperationException = e;
state.OperationComplete.Set();
return;
}
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="290" height="156">
<param name="movie" value="xxx.swf">
<param name="quality" value="high">
<param name="wmode" value="transparent">
<embed src="xxx.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" width="290" height="156"></embed>
</object>
try
{
xml.load("upload.xml");
var nodeSize=xml.getElementsByTagName("size")[0];
var nodeTotal=xml.getElementsByTagName("total")[0];
var nodePercent=xml.getElementsByTagName("percent")[0];
var info=document.getElementById("info");
var progress=document.getElementById("progress");
if(nodePercent!=null&&nodeSize!=null&&nodeTotal!=null)
{
var size=nodeSize.text;
var total=nodeTotal.text;
var percent=nodePercent.text;
progress.style.width=percent*300;
info.innerHTML="Uploaded: <font color='red'>"+size+"</font>/"+total+" Percent: <font color='red'>"+percent+"</font>";
if(size=="finished")
{
clearInterval(interl);
info.innerHTML="<font color='red'>uploaded successfully</font>";
}
}
}
//加了catch
catch(e)
{
clearInterval(interl);
setTimeout(interl=setInterval("getSize()",1000),3000);
}