文件上传/下载ASP.NET MVC2中的示例?

时间:2010-11-18 06:34:52

标签: asp.net asp.net-mvc-2 file file-upload download

我想了解一下我从谷歌研究过的ASP.NET MVC2,但仍然令人困惑。希望我能在这里找到清晰明确的答案。

首先,如何使用自定义文件路径将文件上传到服务器。 (例如,/ Content / Files)

其次,如何下载该文件,因为网址已应用URL Rounting,如何映射到它们?

感谢您的回答!

1 个答案:

答案 0 :(得分:1)

要上传,您将使用类似的内容。

<form action="/MyController/SaveDocuments/" method="post" enctype="multipart/form-data">

        <label for="file1">Document 1</label>
        <input type="file" id="file1" name="file1" />

</form>

这是控制器上保存文件的代码:

     public Document[] SaveDocuments(HttpRequestBase iHttpRequest, Instruction instruction)
    {
        List<Document> documents = new List<Document>();

        foreach (string inputTagName in iHttpRequest.Files)
        {
            HttpPostedFile file = iHttpRequest.Files[inputTagName];
            if (file.ContentLength > 0)
            {
                if (Path.GetExtension(file.FileName).Length == 0)
                {
                    throw new ValidationException(string.Format("File '{0}' has no extension (e.g. .doc .pdf)", file.FileName));
                }
                string filePath = documentService.BuildDocumentPath(instruction.InstructionId, file.FileName);
                file.SaveAs(filePath);

                documents.Add(new Document
                {
                    Filename = Path.GetFileName(file.FileName),
                    Path = filePath
                });
            }
        }

        return documents.ToArray();
    }

至于下载,请说你有目录“〜/ Content / Files”......

您只需在路线中排除它们。

routes.IgnoreRoute("Content/{*pathInfo}");