asp.net MVC实现无组件上传图片实例介绍
在无组件化设计的世界中,实现上传图片的功能其实并不需要复杂的组件配置。你只需要一个HTML表单和一个简单的JavaScript函数就能完成上传任务。今天,让我来向你展示如何将一张图片通过简单的HTML和JavaScript上传到服务器端的ASP页面。
在HTML中创建一个表单,表单的`action`属性指向你的服务器端处理上传的ASP页面地址,`method`设置为POST,并设置`enctype`为`multipart/form-data`以便能够上传文件。在表单中添加一个文件输入元素和一个按钮。代码如下:
```html
```
接下来,编写JavaScript函数来处理上传动作。一个简单的`UpLoad`函数检查表单是否还有其他需要验证的值,如果没有问题就提交表单。代码如下:
```html
function UpLoad() {
// 检查其他表单字段是否有效(如果有的话)
// ...
// 提交表单
document.getElementById('form1').submit();
}
```
在后端,你需要处理这个上传的ASP代码。代码逻辑大致如下:首先获取上传文件的文件名,保存到服务器的指定目录下,然后将文件的路径保存到数据库中。下面是一个简单的示例代码:
```csharp
public ActionResult fileUpLoad(HttpPostedFileBase imageUpLoad) // 参数与前台页面input输入框name保持一致
{
string fileName = imageUpLoad.FileName; // 获取文件名,去掉路径部分
if (fileName.LastIndexOf("\\") > -1) {
fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1);
}
// 保存文件到服务器指定目录
imageUpLoad.SaveAs(Server.MapPath("../../image/img/" + fileName));
// 保存文件路径到数据库(以下代码仅为示意)
string ImagePath = "../../image/img/" + fileName;
string sql = "insert into bookinfo(bookphoto) values('" + ImagePath + "')";
DataBase db = new DataBase();
db.getConn();
int result = db.executeUpdate(sql);
return View();
}
```