在线等待,如何在C#客户端程序中向服务器上传文件(图片)?谢谢! 我找不到相应的空间,我找了半天,只找到别人做的系统里在ASP.NET开发WEB页面时用了一个HtmlInputFile的控件,但我却找不到它(我用的是.NET2003),请问在C#客户端程序中如何实现?希望前辈指点!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://dotnet.aspx.cc/ShowDetail.aspx?id=D8F961C3-CBC1-4591-143D-236B572EB89F 非常感谢!你的意思是没有现成的控件可以用啊?我的程序是客户端调用服务器的WEB服务来实现我的功能,我主要是传图片,而且是保存在数据库image类型中,这个方式实现我感觉不是太好.对不起,我第一次写这么复杂的东西,什么都不懂,恳请您指点,谢谢! int intImageSize; string strImageType; Stream ImageStream; intImageSize = personImage.PostedFile.ContentLength; // 文件大小 strImageType = personImage.PostedFile.ContentType; // 文件类型 ImageStream = personImage.PostedFile.InputStream; byte[] ImageContent = new byte[intImageSize]; int intStatus = ImageStream.Read(ImageContent, 0, intImageSize); // 写入数据库 SqlConnection myConnection = new SqlConnection("server=;"); SqlCommand myCommand=new SqlCommand();; myCommand.CommandText = "update_linkman_1";//update_linkman_1为SQL存储过程 myCommand.Connection=myConnection; myCommand.CommandType = CommandType.StoredProcedure; myCommand.Parameters.Add("@Image", SqlDbType.Image).Value = ImageContent; myCommand.Parameters.Add("@ImageType", SqlDbType.VarChar, 255).Value = strImageType; try { myConnection.Open(); myCommand.ExecuteNonQuery(); myConnection.Close(); Response.Write("<script language='javascript'> alert('您已成功添加了图片!') </script>"); } catch(System.Exception SQLExe) { Response.Write("添加失败!原因:"+SQLExe.ToString()); } 何必这么复杂呢?html页面中<input type='file'/>可以传文件啊。 楼上说的是,我也觉得可以直接用HTML控件<input type='file'/>把他加多个runat=server就可以用了 protected System.Web.UI.HtmlControls.HtmlInputFile upFile;this.upFile.PostedFile.SaveAs(Server.MapPath(serverPath));这样就可以上传了 to 我找不到相应的空间,我找了半天,只找到别人做的系统里在ASP.NET开发WEB页面时用了一个HtmlInputFile的控件,但我却找不到它(我用的是.NET2003),别在web工具栏找,在html工具栏找 谢谢各位大虾。我做的是一个客户端程序,不是WEB页面,建立的是WINDOWS应用程序,程序好像不允许我使用HTML控件啊? to 谢谢各位大虾。我做的是一个客户端程序,不是WEB页面,建立的是WINDOWS应用程序,程序好像不允许我使用HTML控件啊?如果想上传文件在winform中,你不能通过htmlinputfile来做,根据不同的方式来进行上传:1、NetShare;2、Ftp;3、WebService; WebService比较简单,只要调用服务器方法,把本地文件流作为参数传递上去,服务器保存就OK了 WebClient myWebClient = new WebClient(); myWebClient.Credentials = CredentialCache.DefaultCredentials; // 要上传的文件 FileStream fs = new FileStream("文件路径", FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); try { //使用UploadFile方法可以用下面的格式 //myWebClient.UploadFile(uriString,"PUT",fileNamePath); byte[] postArray = r.ReadBytes((int)fs.Length); Stream postStream = myWebClient.OpenWrite(info.WebServerPath,"PUT"); if(postStream.CanWrite) { postStream.Write(postArray,0,postArray.Length); } else { MessageBox.Show( "文件目前不可写!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information); } postStream.Close();服务器IIS打开写入权限。 好像没有自带控件解决啊?我想要的效果就和htmlinputfile一样,我是初学者,上面大家给出的代码我不是很理解,我想用控件解决最好,请问有没有自定义的控件可用? to : WebService比较简单,只要调用服务器方法,把本地文件流作为参数传递上去,服务器保存就OK了这种方法我觉得应该可行,但想想好复杂,能不能说详细一点,我传的什么类型的参数呢?我在服务器端最好还要有个浏览察看文件路径的控件,这个控件如何实现?找到要传的文件后,如何读取它? to : WebService比较简单,只要调用服务器方法,把本地文件流作为参数传递上去,服务器保存就OK了这种方法我觉得应该可行,但想想好复杂,能不能说详细一点,我传的什么类型的参数呢?我在服务器端最好还要有个浏览察看文件路径的控件,这个控件如何实现?找到要传的文件后,如何读取它?你要以webservice来传,参数类型为byte[]即可不过你需要在服务器端进行设置,参看http://blog.csdn.net/knight94/archive/2006/03/31/646252.aspx 请问一个c#程序有多线程,要怎么样调试及诊断 C#新手 关于VSS的问题 自定义值类型的赋值问题 类和接口实例化的问题,解决人100分相送,帮顶有分 如何是连接按钮变色 求助!~ c#.net 登录页面 oracle 指正一下 请问兄弟们一个简单的问题,先谢谢了! 用TC做一个类似WINDOWS那样的画板谁能帮帮说下? 报表打印问题急!! 大家帮我看看这段代码,怎么实现不了功能亚 小人吐血求救,大侠们多多关照呀~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
你的意思是没有现成的控件可以用啊?
我的程序是客户端调用服务器的WEB服务来实现我的功能,我主要是传图片,而且是保存在数据库image类型中,这个方式实现我感觉不是太好.
对不起,我第一次写这么复杂的东西,什么都不懂,恳请您指点,谢谢!
string strImageType;
Stream ImageStream;
intImageSize = personImage.PostedFile.ContentLength; // 文件大小
strImageType = personImage.PostedFile.ContentType; // 文件类型
ImageStream = personImage.PostedFile.InputStream;
byte[] ImageContent = new byte[intImageSize];
int intStatus = ImageStream.Read(ImageContent, 0, intImageSize); // 写入数据库
SqlConnection myConnection = new SqlConnection("server=;");
SqlCommand myCommand=new SqlCommand();;
myCommand.CommandText = "update_linkman_1";//update_linkman_1为SQL存储过程
myCommand.Connection=myConnection;
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.Add("@Image", SqlDbType.Image).Value = ImageContent;
myCommand.Parameters.Add("@ImageType", SqlDbType.VarChar, 255).Value = strImageType; try
{
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
Response.Write("<script language='javascript'> alert('您已成功添加了图片!') </script>"); }
catch(System.Exception SQLExe)
{
Response.Write("添加失败!原因:"+SQLExe.ToString());
}
html页面中<input type='file'/>可以传文件啊。
1、NetShare;
2、Ftp;
3、WebService;
myWebClient.Credentials = CredentialCache.DefaultCredentials; // 要上传的文件
FileStream fs = new FileStream("文件路径", FileMode.Open, FileAccess.Read);
BinaryReader r = new BinaryReader(fs);
try
{
//使用UploadFile方法可以用下面的格式
//myWebClient.UploadFile(uriString,"PUT",fileNamePath);
byte[] postArray = r.ReadBytes((int)fs.Length);
Stream postStream = myWebClient.OpenWrite(info.WebServerPath,"PUT");
if(postStream.CanWrite)
{
postStream.Write(postArray,0,postArray.Length);
}
else
{
MessageBox.Show( "文件目前不可写!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
postStream.Close();服务器IIS打开写入权限。
这种方法我觉得应该可行,但想想好复杂,能不能说详细一点,我传的什么类型的参数呢?我在服务器端最好还要有个浏览察看文件路径的控件,这个控件如何实现?找到要传的文件后,如何读取它?你要以webservice来传,参数类型为byte[]即可
不过你需要在服务器端进行设置,参看
http://blog.csdn.net/knight94/archive/2006/03/31/646252.aspx