Mvc 上传文件

1、建立Mvc项目

2、修改HomeController,代码如下:

 public ActionResult Index()
        {
            ViewData["Message"] = "Welcome to ASP.NET MVC!";
            return View();
        }
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult upLoad(HttpPostedFileBase upfile)
        {
            if (upfile != null)
            {
               //if (upfile.ContentLength > 0)
                //{
                //    string savedName = Path.Combine(Server.MapPath("~/"), upfile.FileName);
                //    upfile.SaveAs(savedName);
                //}
                ViewData["Message"] = upfile.FileName;
            }
            else
                ViewData["Message"] = "没有文件";
            return View("Index");
        }

3、修改View/Home/Index.aspx,注意必须有form,而且要加标签enctype = "multipart/form-data"

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
    <%=ViewData["Message"]%>
    <% using (Html.BeginForm("upLoad", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
       {%>
    <input type="file" name="upfile" />
    <input type="submit" name="uploadControl" value="上传" />
    <%} %>
</asp:Content> 

4、若长传文件比较大,可以修改Web.config ,控制上传文件大小,如限制4M大小

<system.web>

     ........
    <httpRuntime maxRequestLength="4096"/>
     ........

</system.web>

5、唯一 令人 疑惑的是 上述程序发布后,通过IE进行上传文件,返回upfile.FileName,有的浏览器显示文件完整路径,有的仅显示文件名。令人不解,哪位知道的话,帮忙解释一下。谢了

 

Spring MVC 上传文件是一个常见的功能需求,它允许用户通过表单将文件数据发送到服务器端进行处理。在Spring框架中,可以借助`MultipartFile`对象来处理文件上传。以下是基本步骤: 1. **HTML表单**:创建一个包含文件输入字段的HTML表单,`<input type="file">`用于选择本地文件。 ```html <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="fileToUpload"> <button type="submit">上传</button> </form> ``` `enctype="multipart/form-data"`属性很重要,因为它告诉浏览器该表单提交的是二进制数据。 2. **Controller方法**:在Spring MVC控制器中,接收这个请求并处理文件上传。这里通常会检查文件是否有效,然后保存到服务器指定的位置。 ```java @PostMapping("/upload") public String handleFileUpload(@RequestParam("fileToUpload") MultipartFile file) { if (file.isEmpty()) { // 文件为空处理... } else { try { saveUploadedFile(file); return "success"; } catch (Exception e) { // 处理异常... } } return "error"; // 或者返回错误页面 } private void saveUploadedFile(MultipartFile file) throws IOException { byte[] bytes = file.getBytes(); // 将文件保存到服务器目录... } ``` 3. **文件保存**:根据业务需要,将文件保存到服务器文件系统、数据库或其他存储位置。可以使用`OutputStream`或者Spring提供的工具如`FileSystemResource`。 4. **错误处理**:确保捕获并适当地处理可能出现的任何错误,例如文件过大、格式不支持等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值