我想实现一个在本地选择一个文件,然后上传到远程服务上,需求很简单,希望高手帮忙小弟,万分感谢,前提大小在100M以内不会超时!
解决方案 »
- 各位过来人给点意见吧
- 怎样写SelectNodes 可以获取到以上xml的name值
- ¥¥¥100 求图标库,16*16,24*24,32*32均可
- 555,怎么用ADO的stream打开一个电子邮件啊?总是报参数错误,救命啊!~~代码见内
- 急!!html编辑器在低版本ie中无法使用,是何原因?
- DataGridView_CellEndEdit编辑事件无法更新到预定单元格!
- 晕 等了一个钟 没人帮忙...哭
- winform如何给动态创建的文本框赋值和取值?
- 请教用资源文件什么好处?能加快程序运行速度吗?
- 自己做的控件怎样才能和datagrid的datasource属性一样,自动显示相关的控件名称?
- 在winform里把所有界面都做成一个自定义控件,textBox不能用鼠标选择了,内详
- datagridview鼠标双击行事件
* 本内容使用CSDN 小秘书回复 *
* 每天回帖即可得10分可用分! *
*****************************[/align]
winform直接用Socket就应该可以吧,但是一定要保证服务器端
的文件夹有相应的权限以及可以“写入”的属性等等
//不使用缓存
httpRequest.AllowWriteStreamBuffering = false; //Timeout(5秒)
httpRequest.Timeout = 1000*5;
httpRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
httpRequest.Method = "POST";
//httpRequest.SendChunked = false;
FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
BinaryReader r = new BinaryReader(fs);
byte[] postArray = r.ReadBytes((int)fs.Length);
httpRequest.ContentLength = postArray.Length;
Stream requestStream = httpRequest.GetRequestStream();
// HttpWebResponse httpwebresponse = (HttpWebResponse)httpRequest.GetResponse();
if (requestStream.CanWrite)
{ requestStream.Write(postArray, 0, postArray.Length); requestStream.Close();
fs.Dispose();
requestStream = null;
}
dlgOpenFile.Title = "选择要上传的附件";
dlgOpenFile.Filter = "所有文件(*.*)|*.*"; if (dlgOpenFile.ShowDialog() == DialogResult.Cancel)
{
return;
}
//dlgOpenFile.ValidateNames = true;
string sFileName = dlgOpenFile.FileName;
System.IO.FileStream objectfile = new System.IO.FileStream(sFileName, System.IO.FileMode.Open);
if (RptCode != "00000151")
{
if (objectfile.Length > 4096000)
{
MessageBox.Show("文件大小超过限制,不能上传,请选择4M以内的附件。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
objectfile.Close();
return;
}
}
byte[] content = new byte[objectfile.Length];
objectfile.Read(content, 0, (int)objectfile.Length); if (content != null)
{
sFileName = sFileName.Substring(sFileName.LastIndexOf("\\") + 1);
if (YS.AddNewAnnex(RptCode, MainId, content, sFileName, FormBase.ParameterString))
{
MessageBox.Show("附件上传成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("附件上传失败!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
objectfile.Close();
public bool AddNewAnnex(string RptCode, string DataId, byte[] content, string FileName, string DataBaseName)
{ sSql = "insert into cofco_Annex select '" + RptCode + "'," + DataId + ",'" + FileName + "','" + null + "'";//,FileName='"+FileName+"' where RptCode='" + RptCode + "' and UploadRptId=" + DataId;
try
{
con.ExecuteSql(sSql, DataBaseName); sSql = "select max(id) from cofco_annex where rptcode='" + RptCode + "' and UploadRptId=" + DataId;
DataSet dsfj = con.GetData(sSql, "fjid", DataBaseName);
string sid = dsfj.Tables[0].Rows[0][0].ToString();
int i = con.UpdateAnnex(sid, RptCode, DataId, content, FileName, DataBaseName);
if (i != -1)
return true;
else
return false; }
catch
{
return false;
} }