c winform 上传文件到mysql_WinForm上传文件至服务器

///

/// WebClient上传文件至服务器

///

/// 文件名,全路径格式

/// 服务器文件夹路径

///

public bool Upload(string localFilePath, out string folderName,string newFileName)

{

//先创建文件夹

folderName = "";

try

{

Guid guid = Guid.NewGuid();

folderName = guid.ToString();

string diskPath = DAL.DataBaseOperator.GetValueFromApplictionConfig("diskPath");

if (!diskPath.EndsWith("/") && !diskPath.EndsWith(@"\"))

{

diskPath = diskPath + "/";

}

diskPath += folderName;

if (!Directory.Exists(diskPath))

{

//服务器创建文件夹

Directory.CreateDirectory(diskPath);

}

//再上传数据

string serverFolder = DAL.DataBaseOperator.GetValueFromApplictionConfig("uploadPath");

if (!serverFolder.EndsWith("/") && !serverFolder.EndsWith(@"\"))

{

serverFolder = serverFolder + "/";

}

string uriString = serverFolder + folderName + "/" + newFileName;

/// 创建WebClient实例

WebClient myWebClient = new WebClient();

myWebClient.Credentials = CredentialCache.DefaultCredentials;

// 要上传的文件

FileStream fs = new FileStream(newFileName, FileMode.Open, FileAccess.Read);

//判断文件大小

string strFileSize = DAL.DataBaseOperator.GetValueFromApplictionConfig("fileSize");

int fileSize = Convert.ToInt32(strFileSize) * 1024 * 1024;

if (fs.Length > fileSize)

{

MessageBox.Show("您上传的附件不能超过 " + strFileSize + "M");

return false;

}

BinaryReader r = new BinaryReader(fs);

//使用UploadFile方法可以用下面的格式

myWebClient.UploadFile(uriString,"PUT",localFilePath);

byte[] postArray = r.ReadBytes((int)fs.Length);

Stream postStream = myWebClient.OpenWrite(uriString, "PUT");

if (postStream.CanWrite)

{

postStream.Write(postArray, 0, postArray.Length);

}

else

{

MessageBox.Show("文件目前不可写!");

}

Application.DoEvents();

postStream.Close();

}

catch(Exception err)

{

//MessageBox.Show("文件上传失败,请稍候重试~");

DAL.Log.FileLogSys.FileLog.WriteLog(err.Message + err.StackTrace);

return false;

}

return true;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值