在asp.net mvc中视图端用html实现了上传文件,然后怎么显示上传文件的名称呢?可以写代码的例子吗?
时间: 2024-05-05 17:18:10 浏览: 11
当用户上传文件后,服务器会将文件保存在指定的位置。为了显示上传文件的名称,我们可以通过以下方式:
1. 在前端页面中添加一个文本框用于显示上传文件的名称
2. 在Controller中处理文件上传的方法中,通过Request.Files获取文件名,并将文件名传递给前端页面。
这里给出一个简单的代码示例:
前端页面
```
<input type="text" id="file-name" readonly="readonly" />
<input type="file" id="file-input" />
```
在页面上添加一个文本框来显示文件名。添加一个文件输入框,用于用户选择要上传的文件。
jQuery脚本
```
$(function(){
$('#file-input').change(function(e){
var fileName = e.target.files[0].name;
$('#file-name').val(fileName);
});
})
```
在页面加载完成后,给文件输入框绑定一个change事件,当用户选择好文件后,通过e.target.files获取文件名,并将其设置到文本框中。
Controller方法
```
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
if (file!=null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
ViewBag.FileName = fileName;
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
}
return View();
}
```
处理文件上传的方法,通过HttpPostedFileBase类型的file参数获取文件信息。通过Path.GetFileName从文件信息中获取文件名,并将其存储在ViewBag中。最后再将文件保存到指定的位置。
在页面中通过ViewBag.FileName获取文件名,并将其显示在文本框中。