使用 ASP.NET MVC3 上传文件(OpenFileDialog 替代方案)

本文关键字:OpenFileDialog 方案 文件 NET ASP MVC3 使用 | 更新日期: 2023-09-27 18:36:25

我正在尝试复制一些在 MVC3 项目中上传 csv 文件的网络表单功能,但遇到了困难。我有以下要求:

(简短的版本是我需要类似于过滤器InitialDirectory的东西,最好但不一定是MVC3的System.Windows.Controls.OpenFileDialog类的MultiSelect属性)

  1. 显示打开文件对话框的单个按钮
  2. 在对话框中单击打开时开始上传
  3. 对话框中的文件类型应限制为 csv、txt 和所有文件
  4. 初始目录应该能够根据用户首选项进行设置

我已经使用jQuery来满足前两个需求(如下所示),但如果这是最好的方法或如何完成最后两个要求,我就不是了。

视图:

@using (Html.BeginForm("Import", "Date", FormMethod.Post, new { enctype = "multipart/form-data", id="fileUpload" }))
{
    <input type="file" name="file" id="file" style="display: none;" />
    <input type="button" id="import" value="Import" />
}
<script type="text/javascript">
    $(document).ready(function () {
        $('#file').change(function () {
            $('#fileUpload').submit();
        });
        $('#import').click(function () {
            $('#file').trigger('click');
        });
    });
</script>

控制器:

[HttpPost]
public ActionResult Import(HttpPostedFileBase file)
{
      // do stuff
}

有什么想法吗?

使用 ASP.NET MVC3 上传文件(OpenFileDialog 替代方案)

除非你使用Flash或Silverlight插件,否则不可能做到这一点。我使用上传,它应该做你需要的一切。