发布网友 发布时间:2024-10-24 16:34
共2个回答
热心网友 时间:2024-11-16 18:13
重新说明一下,之前我测试用的是谷歌浏览器不是IE。在IE中file.FileName包含路径名的,而谷歌不包含。所以我之前的回答中才会说文件名中不包含路径名,我想你问题就是这个引起的。你可以在保存前加个判断:
string fileName = file.FileName;
if (fileName.LastIndexOf("\\") > -1)
{
fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1);
}
这样就Ok了,同时兼容谷歌和IE
热心网友 时间:2024-11-16 18:09
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我没配置。
我不知道你那是什么样的问题,但是像我这样是没有问题的。