- 爱易网页
-
ASP.NET教程
- 急帮帮忙啊文件下传上载不成功
日期:2014-05-17 浏览次数:20407 次
急!各位高手帮帮忙啊!文件上传下载不成功!
这是我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("~文件名");就可以了。
------解决方案--------------------