Getting the file path from HttpPostedFileBase

26,888

Solution 1

Can't comment as I don't have enough reputation ... :(

Does the folder ...

C:\Users\maab\Desktop\2013-05-10_BuSI Material Project -Last\BuSIMaterial\BuSIMaterial\App_Data\uploads

exist? If not, try to create it manually and try your upload again.

Solution 2

As I understand, you need to upload the file to the server before opening it e.g.

 if (file != null && file.ContentLength > 0) 
    {
        // extract only the fielname
        var fileName = Path.GetFileName(file.FileName);
        // store the file inside ~/App_Data/uploads folder
        var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
        file.SaveAs(path);
    }

I took the above from a similar question's answer by Chance and Darin Dimitrov : File Upload ASP.NET MVC 3.0

This answer additionally references the usefull blog post Uploading a File (Or Files) With ASP.NET MVC

Share:
26,888
Traffy
Author by

Traffy

Code & Sport...

Updated on August 01, 2022

Comments

  • Traffy
    Traffy almost 2 years

    I'm working with ASP.NET MVC 4 and I'm trying to get the path of an uploaded file in order to open and manipulate it. This is how I proceed :

    Controller

    public ActionResult Bulk(HttpPostedFileBase file)
    {
        FileStream fs = System.IO.File.Open(Server.MapPath(file.FileName), 
                                             FileMode.Open, FileAccess.Read);
    
        return RedirectToAction("Index");
    }
    

    View

    @{
        ViewBag.Title = "Index";
    }
    
    <h2>Index</h2>
    
        @using (Html.BeginForm("Bulk", "Bulk", null, FormMethod.Post, new 
                                              { enctype = "multipart/form-data" }))
        {
            @Html.ValidationSummary(true)
    
            <fieldset>
                <p>
                    <input type="file" name="file"/>
                </p>
                <div class="form-actions">
                  <button type="submit" class="btn btn-primary">Create</button>
                </div>
            </fieldset>
        }
    

    When I'm doing that, I get an error which says ... Could not find a part of the path ...

    How can I get the path where my file is actually located?