使用ASP.NET MVC3上载文件(OpenFileDialog替代)

时间:2012-06-05 07:43:53

标签: c# asp.net-mvc-3 file-upload openfiledialog

我正在尝试复制一些在MVC3项目中上传csv文件的webforms功能,并且即将解散。我有以下要求:

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

  1. 显示单个按钮,打开打开文件对话框
  2. 在对话框中单击打开时开始上传
  3. 对话框中的文件类型应限制为csv,txt和所有文件
  4. 应该可以根据用户首选项设置初始目录
  5. 我已经将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
    }
    

    有什么想法吗?

1 个答案:

答案 0 :(得分:1)

除非您使用Flash或Silverlight插件,否则无法执行此操作。我使用Uploadify,它应该做你需要的一切。