日期:2014-05-17  浏览次数:20372 次

急!各位高手帮帮忙啊!文件上传下载不成功!
这是我upload界面的代码: protected void Button1_Click(object sender, EventArgs e)
  {
  string respath = "";
  if (FileUpload1.HasFile)
  {
  respath = FileUpload1.FileName;
  try
  {//尝试上传用户选择的文件,并提示上传成功
  FileUpload1.PostedFile.SaveAs(Server.MapPath("uploadwenjian/" + FileUpload1.FileName));

  //fileupload1.postedfiel表示用户选择的文件
  //fileuplaod1.postedfile.saveas(保存的路径),其中saveAs是一个方法
  //Server.MapPath(),表示服务器的虚拟路径
  //fileupload1.filename是用户选择的文件的名称,例如"讲课备注11.doc"

  //Response.Write(Server.MapPath("upload/" + FileUpload1.FileName));

  //FileUpload1.PostedFile.SaveAs("d:\\" + FileUpload1.FileName);

  //将资源名称、资源备注、资源发布者以及资源路径(文件名)插入到数据库  

  try
  {
  string queryString, connectionString;


  //在配置文件中将数据库连接字符串读取出来

  connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["eduConnectionString"].ToString();

  queryString = "insert into upload(resname,resnote,respath,resauthor) values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + respath + "','" + TextBox3.Text + "')";

  // Response.Write(queryString);
  //构造一个数据库连接
  SqlConnection connection = new SqlConnection(connectionString);

  //构造一个sql命令
  SqlCommand command = new SqlCommand(queryString, connection);
  command.Connection.Open();
  ////执行sql命令
  command.ExecuteNonQuery();


  }
  catch (Exception ex)
  {//如果数据插入有故障则提示以下信息
  //关闭数据库

  Label1.Text="文件上传成功!";
  }

  }
  catch (Exception ex)
  {
  Label1.Text="文件上传失败,错误提示:" + ex.ToString();
  }
  }
  }
  //将文件转化为流存入数据库,如果是sql数据库的话该字段需要设置为image类型
  public byte[] ConvertFileToBytes(HttpPostedFile oFile)
  {
  Stream sm = oFile.InputStream;
  byte[] bytes = new byte[oFile.ContentLength];
  sm.Read(bytes, 0, oFile.ContentLength);
  return bytes;
  }
那个button1就是上传的按钮,现在的情况是每次上传文件不会报错,在upload文件夹也有上传过去的文件,但是数据库里的表没有显示有上传文件,就是信息没有插进数据库里,但是我如果上传的是txt文本,文本名是字母,文本的内容也是字母,没有数字和汉字的话,那在数据库就可以显示出来,其余的就不行。请各位高手帮帮忙啊,我要交期末作品的!

------解决方案--------------------
这个是一个编码的问题,好像操作中文的时候总会出现些莫名其妙的错误。

说一下自己是怎么处理的

数据库中的表

----------
FileName RealName Extension
2012060612131170 新建文本文档 txt

服务器端文件名 文件名 后缀名

----------

然后下载的时候根据服务器端的文件名下载就可以了。

如果要绝对路径 : Server.MapPath("~文件名");就可以了。
------解决方案--------------------
探讨
这个是一个编码的问题,好像操作中文的时候总会出现些莫名其妙的错误。

说一下自己是怎么处理的

数据库中的表

----------
FileName RealName Extension
2012060612131170 新建文本文档 txt

服务器端文件名 文件名 后缀名

----------