日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

向上传文件服务器,向服务器上传文件

發(fā)布時間:2025/3/8 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 向上传文件服务器,向服务器上传文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//--------------------向服務器上傳文件------

//瀏覽選擇需要上傳的文件

private static bool Unzip(string address, string filezip)

{

//創(chuàng)建對話框

OpenFileDialog ofd = new OpenFileDialog();

ofd.Title = "請選擇上傳的文件";

//規(guī)定文件類型

ofd.Filter = "zip(*.zip)|*.zip;";

//判斷是否選擇文件

if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

//獲得文件的完整路徑(包括名字后后綴)

FilePath = ofd.FileName;

//計算文件KB大小.字節(jié)/1024

txtFileSize.Text = Math.Round(new System.IO.FileInfo(FilePath).Length / 1024.0, 2).ToString();

}

}

//上傳文件

private void UploadFileIng()

{

//截止文件名稱

string fileName = FilePath.Substring( FilePath.LastIndexOf("\\") + 1);

//文件上傳

System.IO.FileInfo fileInfoIO = new System.IO.FileInfo(FilePath);

FileStream fs = File.OpenRead(fileInfoIO.FullName);

//獲取文件MD5值

try

{

int maxSiz = 1024 * 100;

// 根據文件名獲取服務器上的文件

CustomFileInfo file = client.GetFileInfo(fileInfoIO.Name);

if (file == null)

{

file = new CustomFileInfo();

file.OffSet = 0;

}

file.Name = fileInfoIO.Name;

file.Length = fs.Length;

fs.Close();

fs.Dispose();

if (file.Length == file.OffSet) //如果文件的長度等于文件的偏移量,說明文件已經上傳完成

{

MessageBox.Show("該文件已存在");

}

else

{

//while (file.Length != file.OffSet)

//{

file.SendByte = new byte[file.Length - file.OffSet <= maxSiz ? file.Length - file.OffSet : maxSiz]; //設置傳遞的數據的大小

file = client.UpLoadFileInfo(file, sysConfig); //上傳

// //int percent = (int)((double)file.OffSet / (double)((long)file.Length)) * 100;

// int percent = (int)(((double)file.OffSet / (double)((long)file.Length)) * 100);

//}

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

client.Close();

client.Abort();

}

}

//客戶端請求配置ServerClient

public CustomFileInfo UpLoadFileInfo(CustomFileInfo fileInfo,SysConfig sysconfig)

{

return this.Channel.UpLoadFileInfo(fileInfo, sysconfig);

}

//實現接口 Server

public CustomFileInfo UpLoadFileInfo(CustomFileInfo fileInfo,SysConfig sysconfig)

{

// 獲取服務器文件上傳路徑

string fileUpLoadPath = System.Web.HttpContext.Current.Server.MapPath(sysconfig.addressFile);

// 如需指定新的文件夾,需要進行創(chuàng)建操作。

if (!Directory.Exists(fileUpLoadPath))

{

Directory.CreateDirectory(fileUpLoadPath);

}

// 創(chuàng)建FileStream對象

FileStream fs = new FileStream(fileUpLoadPath + fileInfo.Name, FileMode.OpenOrCreate);

long offSet = fileInfo.OffSet;

// 使用提供的流創(chuàng)建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;

fileInfo.path = fileUpLoadPath ;

binaryWriter.Close();

fs.Close();

return fileInfo;

}

public CustomFileInfo GetFileInfo(string fileName)

{

string filePath = System.Web.Hosting.HostingEnvironment.MapPath("~/UpLoadFile/") + fileName;

if (File.Exists(filePath))

{

var fs = new FileStream(filePath, FileMode.OpenOrCreate);

CustomFileInfo fileInfo = new CustomFileInfo

{

Name = fileName,

OffSet = fs.Length,

};

fs.Close();

return fileInfo;

}

return null;

}

//定有接口 IServer

[OperationContract]

CustomFileInfo UpLoadFileInfo(CustomFileInfo fileInfo, SysConfig sysConfig);

[OperationContract]

CustomFileInfo GetFileInfo(string fileName);

總結

以上是生活随笔為你收集整理的向上传文件服务器,向服务器上传文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。