.NET面试题

当前位置: 面试问题网 > .NET面试题 > 在ASP.NET中如何进行文件上传

在ASP.NET中如何进行文件上传

上传文件的步骤:
   首先,从客户端取得上传的文件,然后,我们将它放入数据流;
   第二,服务器端读取数据流,然后将其保存到缓存;
   第三,将缓存数据保存到数据库;
   第一步
   首先我们要实现用户在浏览器端自由选择文件,然后上传,这里用户选择文件,当然是要求标准的Windows方式,所以,我们在这里使用Form的File文件组件来给用户选择文件。注意,因为上传文件,所以,在Form的属性设置的时候,我们应该设置为:multipart/form-data,这样,才可以正确上传文件。
   下面是上传页面的主要代码:
  
   第二步
   我们可以将上传的文件通过数据流保存到缓存,缓存的大小和文件的具体大小相同,我们可以使用以下的代码来取得文件的具体大小:
   int intDocLen = txtFileContents.PostedFile.ContentLength;
   然后,我们可以设置缓存的具体大小了:
   byte[] Docbuffer = new byte[intDoclen];
   这样设置以后,我们可以将上传文件的内容保存到缓存中:
   Stream objStream;
   objStream = txtFileContents.PostedFile.InputStream;
   objStream.Read(Docbuffer,0,intDocLen);
  
   在以上代码中,读取缓存的时候,从缓存的0位置开始,直到整个文件的长度,其实,这就是整个文件或者整个缓存的大小。
   第三步
  
      现在我们需要做的就是将缓存数据保存到数据库,我们已经直到数据表结 构,这样,我们通过编写简单的SQL语句就可以实现这个功能。在上面的内容中,我们编写了一个存储过程,在程序中,我们只要建立SqlCommand对象并且将这个存储过程传递给它,并设置“@Doc”参数取得缓存数据就可以了:
   cmdUploadDoc = new SqlCommand(“uSP_BooksUploadFile”,BooksConn);
   cmdUploadDoc.CommandType = CommandType.StoredProcedure;
   cmdUploadDoc.Parameters.Add(“@Title “,SqlDbType.VarChar,200);
   cmdUploadDoc.Parameters.Add(“@Doc”,SqlDbType.Image); cmdUploadDoc.Parameters.Add(“@DocType”,SqlDbType.VarChar,4);
   cmdUploadDoc.Parameters[0].Value = txtTitle.Text;
   cmdUploadDoc.Parameters[1].Value = Docbuffer;
   cmdUploadDoc.Parameters[2].Value = strDocType;
   点击按钮处理代码
   private void btnSubmit_Click(object sender, System.EventArgs e)
   {
   string strDocExt;
   //strDocType用于保存上传文件的类型
   string strDocType;
   //用于保存文件大小
   int intDocLen;
   //Stream用于读取上传数据
   Stream objStream;
   SqlConnection BooksConn;
   SqlCommand cmdUploadDoc;
   if(IsValid)
   {
   if(txtFileContents.PostedFile != null)
   {
   //文件类型
   strDocExt = CString.Right
   (txtFileContents.PostedFile.FileName,4).ToLower();
   switch(strDocExt)
   {
   case “.doc”:
   strDocType = “doc”;
   break;
   case “.ppt”:
   strDocType = “ppt”;
   break;
   case “.htm”:
   strDocType = “htm”;
   break;
   case “.html”:
   strDocType = “htm”;
   break;
   case “.jpg”:
   strDocType = “jpg”;
   break;
   case “.gif”:
   strDocType = “gif”;
   break;
   default:
   strDocType = “txt”;
   break;
   }
   //上传文件具体内容
   intDocLen = txtFileContents.PostedFile.ContentLength;
   byte[] Docbuffer = new byte[intDocLen];
   objStream = txtFileContents.PostedFile.InputStream;
   //文件保存到缓存
   //缓存将保存到数据库
   objStream.Read(Docbuffer ,0,intDocLen);
   BooksConn = new
   SqlConnection(“Server=Server;UID=sa;Database=Books”);
   cmdUploadDoc = new
   SqlCommand(“uSP_BooksUploadFile”,BooksConn);
   cmdUploadDoc.CommandType = CommandType.StoredProcedure;
   cmdUploadDoc.Parameters.Add(“@Title “,SqlDbType.VarChar,200);
   cmdUploadDoc.Parameters.Add(“@Doc”,SqlDbType.Image);
   cmdUploadDoc.Parameters.Add(“@DocType”,SqlDbType.VarChar,4);
   cmdUploadDoc.Parameters[0].Value = txtTitle.Text;
   cmdUploadDoc.Parameters[1].Value = Docbuffer ;
   cmdUploadDoc.Parameters[2].Value = strDocType;
   BooksConn.Open();
   cmdUploadDoc.ExecuteNonQuery();
   BooksConn.Close();
   }
   }
   }

【在ASP.NET中如何进行文件上传】相关文章

1. 在ASP.NET中如何进行文件上传

2. Ruby如何进行文件操作

3. 简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?

4. ASP.NET中共有几种类型的控件?各有什么区别?

5. 如果出现ASP.NET中的事件不能触发可能由于什么原因造成?请列举至少两个

6. ASP.NET中内置对象是什么

7. ASP.NET中的身份验证有那些

8. ruby如何进行集成操作?Ruby能进行多重继承吗?

9. ASP.net和ADO.net面试题

10. Linux如何压缩可执行文件

本文来源:https://www.mianshiwenti.com/a12731.html

点击展开全部

《在ASP.NET中如何进行文件上传》

将本文的Word文档下载到电脑,方便收藏和打印

推荐程度:

进入下载页面

﹝在ASP.NET中如何进行文件上传﹞相关内容

「在ASP.NET中如何进行文件上传」相关专题

其它栏目

也许您还喜欢