请问大家关于c#上传文件到webdav的问题,摆脱大家救救我
请问大家关于c#上传文件到webdav的问题,我最多怎么只能上传2个呢?多于2个就说超时了?怎么办?摆脱大家救救我
private void uploadfn(String loopnum)
{
string uploadtmp = urlbox.Text;
string tmpstr = uploadtmp + loopnum+uploadfile;
writelog("アップロード:開始,件数:" + loopnum + "件," + loopnum + uploadfile);
// HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://192.168.0.19/webdav/365.pdf");
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(tmpstr);
req.KeepAlive = false;//---------------------wo jia de
req.Credentials = new NetworkCredential(username.Text, passwd.Text);//用户名,密码 //CredentialCache.DefaultCredentials使用默认的认证
req.PreAuthenticate = true;
req.Method = "PUT";
req.AllowWriteStreamBuffering = true;
// Retrieve request stream
Stream reqStream = req.GetRequestStream();
// Open the local file
//FileStream rdr = new FileStream("C://test/365.pdf", FileMode.Open);
FileStream rdr = new FileStream(localpathfile, FileMode.Open);
// Allocate byte buffer to hold file contents
int bufferLength = 4096;
byte[] inData = new byte[bufferLength];
// loop through the local file reading each data block
// and writing to the request stream buffer
int bytesRead = rdr.Read(inData, 0, inData.Length);
//------------詳しくpress---------------
long fileLength = rdr.Length;
string strBoundary = "----------" + DateTime.Now.Ticks.ToString("x");
byte[] boundaryBytes = Encoding.ASCII.GetBytes("/r/n--" + strBoundary + "/r/n");
//请求头部信息
StringBuilder sb = new StringBuilder();
string strPostHeader = sb.ToString();
byte[] postHeaderBytes = Encoding.UTF8.GetBytes(strPostHeader);
long length = rdr.Length + postHeaderBytes.Length + boundaryBytes.Length;
System.IO.FileInfo f = new FileInfo(localpathfile);
// MessageBox.Show(f.Length.ToString());
long MaxValue = f.Length;
long offset = 0;
//开始上传时间
DateTime startTime = DateTime.Now;
progressDetail.Maximum = int.MaxValue;
progressDetail.Minimum = 0;
progressDetail.Value = 0;
//---------------------------
while (bytesRead > 0)
{
//------------詳しくpress---------------
offset += bytesRead;
progressDetail.Value = (int)(offset * (int.MaxValue / length));
TimeSpan span = DateTime.Now - startTime;
double second = span.TotalSeconds;
lblTime.Text = "かかる時間:" + second.ToString("F2") + "秒";
if (second > 0.001)
{
lblSpeed.Text = " 平均速度:" + (offset / 1024 / second).ToString("0.00") + "KB/秒";
}
else
{
lblSpeed.Text = "接続中...";
}
lblState.Text = "アップロード:" + (offset * 100.0 / length).ToString("F2") + "%";
lblSize.Text = (offset / 1048576.0).ToString("F2") + "M/" + (fileLength / 1048576.0).ToString("F2") + "M";
//---------------------------
reqStream.Write(inData, 0, bytesRead);
bytesRead = rdr.Read(inData, 0, inData.Length);
}
rdr.Close();
reqStream.Close();
req.GetResponse();
writelog("アップロード:完了,件数:" + loopnum + "件" + loopnum + uploadfile);