我找不到相应的空间,我找了半天,只找到别人做的系统里在ASP.NET开发WEB页面时用了一个HtmlInputFile的控件,但我却找不到它(我用的是.NET2003),
请问在C#客户端程序中如何实现?
希望前辈指点!!!

解决方案 »

  1.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=D8F961C3-CBC1-4591-143D-236B572EB89F
      

  2.   

    非常感谢!
    你的意思是没有现成的控件可以用啊?
    我的程序是客户端调用服务器的WEB服务来实现我的功能,我主要是传图片,而且是保存在数据库image类型中,这个方式实现我感觉不是太好.
    对不起,我第一次写这么复杂的东西,什么都不懂,恳请您指点,谢谢!
      

  3.   

    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());
    }
      

  4.   

    何必这么复杂呢?
    html页面中<input type='file'/>可以传文件啊。
      

  5.   

    楼上说的是,我也觉得可以直接用HTML控件<input type='file'/>把他加多个runat=server就可以用了
      

  6.   

    protected System.Web.UI.HtmlControls.HtmlInputFile upFile;this.upFile.PostedFile.SaveAs(Server.MapPath(serverPath));这样就可以上传了
      

  7.   

    to 我找不到相应的空间,我找了半天,只找到别人做的系统里在ASP.NET开发WEB页面时用了一个HtmlInputFile的控件,但我却找不到它(我用的是.NET2003),别在web工具栏找,在html工具栏找
      

  8.   

    谢谢各位大虾。我做的是一个客户端程序,不是WEB页面,建立的是WINDOWS应用程序,程序好像不允许我使用HTML控件啊?
      

  9.   

    to 谢谢各位大虾。我做的是一个客户端程序,不是WEB页面,建立的是WINDOWS应用程序,程序好像不允许我使用HTML控件啊?如果想上传文件在winform中,你不能通过htmlinputfile来做,根据不同的方式来进行上传:
    1、NetShare;
    2、Ftp;
    3、WebService;
      

  10.   

    WebService比较简单,只要调用服务器方法,把本地文件流作为参数传递上去,服务器保存就OK了
      

  11.   

    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打开写入权限。
      

  12.   

    好像没有自带控件解决啊?我想要的效果就和htmlinputfile一样,我是初学者,上面大家给出的代码我不是很理解,我想用控件解决最好,请问有没有自定义的控件可用?
      

  13.   

    to : WebService比较简单,只要调用服务器方法,把本地文件流作为参数传递上去,服务器保存就OK了这种方法我觉得应该可行,但想想好复杂,能不能说详细一点,我传的什么类型的参数呢?我在服务器端最好还要有个浏览察看文件路径的控件,这个控件如何实现?找到要传的文件后,如何读取它?
      

  14.   

    to : WebService比较简单,只要调用服务器方法,把本地文件流作为参数传递上去,服务器保存就OK了
    这种方法我觉得应该可行,但想想好复杂,能不能说详细一点,我传的什么类型的参数呢?我在服务器端最好还要有个浏览察看文件路径的控件,这个控件如何实现?找到要传的文件后,如何读取它?你要以webservice来传,参数类型为byte[]即可
    不过你需要在服务器端进行设置,参看
    http://blog.csdn.net/knight94/archive/2006/03/31/646252.aspx