blueimp jQuery文件上传发送参数ASP.Net

时间:2012-09-11 11:54:01

标签: c# jquery .net file-upload blueimp

我正在使用 我的.Net项目的jQuery File Uploader处理程序的“https://github.com/i-e-b/jQueryFileUpload.Net”.Net .ashx版本。它来自iframe。

我想为每个文件上传事件发送两个参数:“recordId”和“FieldName”。 这有可能吗?

1 个答案:

答案 0 :(得分:0)

这是我的解决方案;

首先,当iframe打开它时,搜索列出现有文件。

loadFiles = function (id, field) {
            // Show uploaded files
            $.getJSON($('#fileupload form').prop('action'), { Id: id, Field: field }, function (files) {
                var fu = $('#fileupload').data('fileupload');
                fu._adjustMaxNumberOfFiles(-files.length);

                fu._renderDownload(files)
                .appendTo($('#fileupload .files'))
                .fadeIn(function () {
                    // Fix for IE7 and lower:
                    $(this).show();
                });
            });
        }

如上所示,我在解决方案中为每条记录添加了Id和Field名称,因此它将检查记录自己的文件夹。 在代码隐藏中,我添加它来创建会话参数:

protected void Page_Load(object sender, EventArgs e)
    {
        Session.Add("fuFilePath", "\\");
    }

最后,在处理程序中有一个控制机制,它获取记录字段的所有其他调用的路径信息。

    public string FILEPATH = "";

    public string StorageRoot(HttpContext context)
    {
        if (context.Session["fuFilePath"] != null)
            FILEPATH = context.Session["fuFilePath"].ToString();
        else
            FILEPATH = ConfigurationManager.AppSettings["StorageRoot"];

        Directory.CreateDirectory(FILEPATH);
        return FILEPATH; 
    }

    public bool IsReusable { get { return false; } }

    public void ProcessRequest (HttpContext context) {
        context.Response.AddHeader("Pragma", "no-cache");
        context.Response.AddHeader("Cache-Control", "private, no-cache");

        if (context.Request.Params["Id"] != null && context.Request.Params["Field"] != null) {
            context.Session["fuFilePath"] = ConfigurationManager.AppSettings["StorageRoot"] + context.Request.Params["Id"] + "\\" + context.Request.Params["Field"] + "\\"; ;
        }

        HandleMethod(context);
    }

对于所有其他调用,它首先查看session参数并获取记录的文件路径。 如果用户为另一个字段或另一个记录打开fileupload的iframe,首先,它将列出现有文件,因此会话参数将被正确的替换,直到新的列表活动发生。

这对我来说是最简单的方法。