狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# winform 如何實現多文件上傳到指定服務器

admin
2017年3月22日 0:22 本文熱度 6092
//獲取openFileDialog控件選擇的文件名數組(openFileDialog可多個文件選擇)
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "";
try
{
this.openFileDialog1.ShowDialog();
path = this.openFileDialog1.FileNames; //獲取openFileDialog控件選擇的文件名數組
string strpath = "";
for (int y = 0; y < path.Length; y++)
{
strpath += path[y];
}
textBox1.Text = strpath;
}
catch
{
this.lbl_ftpStakt.Text = "請選擇文件!";
}
}
//上傳按鈕事件
private void button2_Click(object sender, EventArgs e)
{
this.lbl_ftpStakt.Visible = true; //設置上傳信息標簽可見
this.lbl_ftpStakt.Text = "連接服務器...";

try
{
for (i = 0; i < path.Length; i++)
{
filename = path[i].ToString();

//實例化事件類
myTest fo = new myTest(filename);
fo.startUpEvent+=new myTest.myUpEventsHandler(this.RunsOnWorkerThread); //注冊事件
fo.mythreadStart(); //調用類的方法

FileInfo p = new FileInfo(path[i].ToString());
uploadSQL(p.Name); //上傳到庫
}
//label1.Text = "上傳成功";
}
catch
{
string s="";
for (int x = i; x < path.Length; x++)
{
FileInfo file = new FileInfo(path[i].ToString());
s += file.Name + " ";
}
this.lbl_ftpStakt.Text = "上傳失敗";
MessageBox.Show(s.ToString()+" 上傳失敗","提示");
}
}
//連接ftp上傳
public void RunsOnWorkerThread(string _filename)
{
//阻塞線程
mt.WaitOne();
Interlocked.Increment(ref flag); //狀態值+1

this.lbl_ftpStakt.Text = "連接服務器中...";
FileInfo fileInf = new FileInfo(_filename);
FtpWebRequest reqFTP;
// 根據uri創建FtpWebRequest對象
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://210.82.***.***/" + fileInf.Name));
// ftp用戶名和密碼
reqFTP.Credentials = new NetworkCredential("record", "files");
// 默認為true,連接不會被關閉
// 在一個命令之后被執行
reqFTP.KeepAlive = false;
// 指定執行什么命令
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
// 指定數據傳輸類型
reqFTP.UseBinary = true;
// 上傳文件時通知服務器文件的大小
reqFTP.ContentLength = fileInf.Length;
//long _length = fileInf.Length; /////////
// 緩沖大小設置為2kb
int buffLength = 2048; ////
byte[] buff = new byte[buffLength];
int contentLen;
// 打開一個文件流 (System.IO.FileStream) 去讀上傳的文件
FileStream fs = fileInf.OpenRead();

try
{
// 把上傳的文件寫入流
Stream strm = reqFTP.GetRequestStream();
// 每次讀文件流的2kb
contentLen = fs.Read(buff, 0, buffLength);
int allbye = (int)fileInf.Length;
int startbye = 0;
this.myProgressControl.Maximum = allbye;
this.myProgressControl.Minimum = 0;
this.myProgressControl.Visible = true;
this.lbl_ftpStakt.Visible = true;
this.lbl_ftpStakt.Text = "服務器連接中...";
// 流內容沒有結束
while (contentLen != 0)
{
// 把內容從file stream 寫入 upload stream
strm.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength);
startbye += contentLen;
this.lbl_ftpStakt.Text = "已上傳:" + (int)(startbye / 1024) + "KB/" + "總長度:" + (int)(allbye / 1024) + "KB" + " " + " 文件名:" + fileInf.Name;
myProgressControl.Value = startbye;
}
// 關閉兩個流
strm.Close();
fs.Close();
this.myProgressControl.Visible = false;
this.lbl_ftpStakt.Text = "上傳成功!";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Upload Error");
}
Interlocked.Decrement(ref flag);
mt.ReleaseMutex();//釋放線程
}

/// <summary>
/// 委托事件類
/// </summary>
class myTest
{
public string filename;
public delegate void myUpEventsHandler(string _filename);
public event myUpEventsHandler startUpEvent;

public myTest()
{
}

/// <summary>
///
/// </summary>
/// <param name="_filename">上傳的文件名</param>
public myTest(string _filename)
{
this.filename = _filename;
}

/// <summary>
/// 開始一個線程,執行事件
/// </summary>
public void mythreadStart()
{
Thread thr = new Thread(new ThreadStart(this.mystart));
thr.Start();
}

/// <summary>
/// 開始事件
/// </summary>
public void mystart()
{
startUpEvent(this.filename);
}
}

該文章在 2017/3/22 0:22:52 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved