C# FileUpload控件上传图片到数据库代码

### C# FileUpload 控件上传图片到数据库代码详解 #### 一、背景介绍 在Web应用程序开发中,经常需要处理用户上传的文件,尤其是图片。ASP.NET提供了`FileUpload`控件来帮助开发者轻松实现这一功能。本文将详细介绍如何使用C#结合`FileUpload`控件将用户上传的图片保存到服务器上的指定文件夹,并将图片路径存储到数据库中。 #### 二、所需技术栈 - **前端**:HTML, ASP.NET Web Forms - **后端**:C# - **数据库**:SQL Server (假设使用的是SQL Server) #### 三、环境配置 确保开发环境中已安装以下软件: - Visual Studio (或同等IDE) - .NET Framework SDK - SQL Server (用于存储图片路径) #### 四、详细步骤 ##### 步骤1:设置项目 - 创建一个新的ASP.NET Web Forms项目。 - 在项目中添加必要的引用(如System.Data.SqlClient等)。 ##### 步骤2:设计用户界面 在项目的默认页面中,添加`FileUpload`控件以及一个按钮用于触发上传操作: ```html <form id="form1" runat="server"> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" /> </form> ``` ##### 步骤3:编写后端逻辑 在`Button1_Click`事件处理程序中编写代码来处理文件上传逻辑: ```csharp protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { // 1. 保存图片到服务器上的指定文件夹 string serverFolderPath = Server.MapPath("~/img/"); string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName); string fullPath = Path.Combine(serverFolderPath, fileName); FileUpload1.PostedFile.SaveAs(fullPath); // 2. 存储图片路径到数据库 string connectionString = ConfigurationManager.ConnectionStrings["myBlogSQL1ConnectionString"].ConnectionString; string insertSql = "INSERT INTO photos (ImagePath) VALUES (@ImagePath)"; using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(insertSql, connection)) { command.Parameters.AddWithValue("@ImagePath", fullPath); connection.Open(); int rowsAffected = command.ExecuteNonQuery(); if (rowsAffected > 0) { Session["flag"] = true; Response.Write("<script language=javascript>alert('上传成功!');</script>"); // 可以重定向到其他页面 // Response.Redirect("Index.aspx"); } else { Response.Write("<script language=javascript>alert('上传失败,请重试!');</script>"); } } } } else { Response.Write("<script language=javascript>alert('请选择文件!');</script>"); } } ``` ##### 步骤4:数据库表结构 创建一个名为`photos`的表,包含以下字段: - `ID` (INT, 主键) - `ImagePath` (VARCHAR(MAX), 存储图片的路径) ##### 步骤5:测试与调试 - 运行项目并尝试上传图片。 - 检查服务器上的指定文件夹是否正确保存了图片。 - 检查数据库中的`photos`表是否正确存储了图片路径。 #### 五、常见问题及解决方案 1. **权限问题**:确保应用程序池运行时使用的账户具有写入服务器指定文件夹的权限。 2. **数据库连接失败**:检查数据库连接字符串是否正确,以及数据库服务是否正常运行。 3. **图片未正确显示**:确认图片路径是否正确,并且服务器能够正确解析这些路径。 #### 六、总结 通过上述步骤,我们已经成功实现了使用`FileUpload`控件将图片上传到服务器指定文件夹,并将图片路径存储到数据库的功能。这种实现方式不仅简化了开发过程,还提高了系统的稳定性和安全性。在实际项目中,还可以进一步增加错误处理和日志记录等功能来提高用户体验。










FileUpload1.PostedFile.SaveAs("路径//img//" + FileUpload1.FileName); // FileUpload控件把图片上传到img文件夹里。
string photo = "img/";
string lujing = photo + FileUpload1.FileName; //定义lujing ,及图片路径
string connStr = ConfigurationManager.ConnectionStrings["myBlogSQL1ConnectionString"].ConnectionString;
string insertStr = "insert into photos (图像地址) values (''‘+ lujing + "')";//填入表photos中,取出路径在前台的image控件中显示,也就是把前台的image控件绑定在“图像地址”这个字段上
SqlConnection conn = new SqlConnection(connStr);
SqlCommand insertComm = new SqlCommand(insertStr, conn);
try
{
conn.Open();
//insertComm.ExecuteNonQuery();
int flag = insertComm.ExecuteNonQuery();
//测试是否添加
if (flag > 0)
{
Session["flag"] = flag;
Response.Write("<script language=javascript>alert('添加成功!')");
Response.Write("windows.documents.location.href='photo.aspx'</script>");
//Response.Redirect("index.aspx");

- 粉丝: 62
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 人工智能产业发展亟探新格局.docx
- labview控制固纬可编程电源m(1).docx
- 计算机组成原理课后答案(高教版).ppt
- 教育信息化背景下教师专业化发展存在的问题分析.docx
- SQLServer2008基础教程教材配套资源ppt课件(完整版).zip
- [经济学]《数据结构实用教程C语言版》第3章-栈和队列.ppt
- 基于matlab的运动目标检测.doc
- 会计电算化对企业信息化改革发展的影响.docx
- 北京营销型网站分析营销型网站建设5大策略-诺亚商舟.doc
- 基于互联网+视域下初中信息技术教学方式的转变.docx
- 计算机病毒教学讲义.ppt
- 电子商务介绍ppt课件.pptx
- 计算机基础与C语言程序设计教材配套资源ppt课件(完整版).zip
- 第一部分计算机网络概述知识讲解.ppt
- 啤酒厂自动化检测仪表.ppt
- 浅析自动化在机械工程中的应用(1).docx



- 1
- 2
前往页