c/s 给 服务器上传文件(c/s和b/s互传文件)

时间:2023-01-26 21:11:06
//c/s 代码
 private void button1_Click(object sender, EventArgs e)
        {

            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.InitialDirectory = "c:\\";//注意这里写路径时要用c:\\而不是c:\
            openFileDialog.Filter = "所有文件|*.*|word|*.doc|word|*.docx|Excel|*.xlsx|Excel|*.xls|图片pdf|*.pdf|图片png|*.png";
            // openFileDialog.RestoreDirectory = true;
            openFileDialog.FilterIndex = 1;
            DataSet ds = new DataSet();
            try
            {
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    FileInfo files = new FileInfo(openFileDialog.FileName);
                    if (Config.Ext.Contains(files.Extension) == false)
                    {
                        MessageBox.Show("不允许上传此类型的文件");
                        return;
                    }

                    // 获得文件大小KB为单位
                    fileLength = Convert.ToInt32( files.Length /1024);
                    Cursor.Current = Cursors.WaitCursor;
                    WebClient webClient = new WebClient();
                    string name = openFileDialog.SafeFileName;
                    string nametemp = openFileDialog.SafeFileName;
                    AttachmentBLL AttachmentBLL = new BLL.AttachmentBLL();
                    if (AttachmentBLL.CheckName(name))
                    {
                        name = DateTime.Now.ToString("yyyyMMddHHmmss") + name;
                    }
                    string uploadpath = Config.uploadpath;
                    string path = uploadpath + name;
                    string file = openFileDialog.FileName;
                    int len = 1024;
                    byte[] ty = new byte[len];
                    ty = webClient.UploadFile(path, "post", file);// path=http://i.cnblogs.com/MyHandler.ashx?name="文件名称"
                    Tempclass temp = new Tempclass();
                    string attachmentpath = Config.attachmentpath;
                    string url = Config.path + name;
                    temp.Id = AttachmentBLL.AddAttachment(url, openFileDialog.SafeFileName,fileLength);

                    temp.Nane = openFileDialog.SafeFileName;

                    infolist.Add(temp);
                    listannex.DataSource = null;
                    listannex.DataSource = infolist;

                    listannex.DisplayMember = "Nane";
                    listannex.ValueMember = "Id";
                    listannex.ClearSelected();
                    filename = filename + nametemp + "; ";
                    Cursor.Current = Cursors.Default;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

  

//一般处理处理程序中的代码

    /// <summary>
    /// MyHandler 的摘要说明
    /// </summary>
    public class MyHandler : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello World");
            HttpPostedFile imgPostFile = context.Request.Files[0];  //一直为null
            string name = context.Request["name"];
            string path = System.Configuration.ConfigurationManager.AppSettings["path"].ToString(); //保存服务器的地址 C:\\dbi\\WebService\\attachment\\
            imgPostFile.SaveAs(path + name);
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }