...中,在controller中使用HttpPostedFileBase file 参数获取上传的文件...

发布网友 发布时间:2024-10-24 16:34

我来回答

2个回答

热心网友 时间:2小时前

重新说明一下,之前我测试用的是谷歌浏览器不是IE。在IE中file.FileName包含路径名的,而谷歌不包含。所以我之前的回答中才会说文件名中不包含路径名,我想你问题就是这个引起的。你可以在保存前加个判断:
string fileName = file.FileName;
if (fileName.LastIndexOf("\\") > -1)
{
fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1);
}
这样就Ok了,同时兼容谷歌和IE

热心网友 时间:2小时前

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcTest1.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "欢迎使用 ASP.NET MVC!";

return View();
}

//上传文件的控件name是file1,也就是<input type="file" name="file1" />
//上传到Upload文件夹(与Controllers文件夹同级)
[HttpPost]
public ActionResult About()
{
HttpFileCollectionBase files= Request.Files;
HttpPostedFileBase file = files["file1"];//获取上传的文件
if (file != null && file.ContentLength > 0)
{
string path = Server.MapPath("~/Upload/");//获取uplaod文件夹路径
try
{
file.SaveAs(path + file.FileName);//保存文件
}
catch (Exception e)
{
throw e;
}
}
else
{
//文件为空的处理
}
return View();
}
}
}

这是我的代码,我试了,可以上传成功的,当然不能大于4M,因为web.config我没配置。
我不知道你那是什么样的问题,但是像我这样是没有问题的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com