使用FireFox使用jquery和http处理程序时未找到文件

使用FireFox使用jquery和http处理程序时未找到文件,jquery,asp.net,ihttphandler,Jquery,Asp.net,Ihttphandler,下面的代码用于将文件复制到目录中,但我继续得到一个异常“C:\Program Files(x86)\Common Files\Microsoft Shared\DevServer\10.0\abc.jpg”文件未找到错误。谢谢你的帮助和建议。我正在Windows7机器上使用VS2010、jQuery 1.8.1(min)、IIS7。我的webconfig中的和元素中都有FileUpload.ashx 此问题仅在使用FireFox时出现。 HTML标记 var FileName = nul

下面的代码用于将文件复制到目录中,但我继续得到一个异常“C:\Program Files(x86)\Common Files\Microsoft Shared\DevServer\10.0\abc.jpg”文件未找到错误。谢谢你的帮助和建议。我正在Windows7机器上使用VS2010、jQuery 1.8.1(min)、IIS7。我的webconfig中的和元素中都有FileUpload.ashx

此问题仅在使用FireFox时出现。

HTML标记

    var FileName = null;     

$.ajax({ type: "POST",
            url: "FileUpload.ashx",
            data: { FileName: FileName },
            async: true,
            success: function (data) {
                alert("Success");
                }
            },
            error: function (data) {
                alert("Error");
            }
        });
    });

   function setFileName(e) {
        FileName = e.value;         
    }
文件上传的代码隐藏

public void ProcessRequest(HttpContext context)
    {

        try
        {

            String FileID = Guid.NewGuid().ToString();


            String sDirectory = "~/UploadedFiles/";
            String sFileName = context.Request["FileName"];
            String sUploadPath = String.Format("{0}/{1}", sDirectory, sFileName);
            sUploadPath = context.Server.MapPath(sUploadPath);


            string FileName = context.Request["FileName"];
            FileInfo fn = new FileInfo(FileName);

            fn.CopyTo(sUploadPath + FileID + "_" + fn.Name);

     }

     catch (Exception ex)
         {
    string message = ex.Message;
         }

      }

您的AJAX调用只是发送一个文件名,而不是文件本身。谢谢Barmar。我正在使用asp.net中的FileUpload控件上传文件。是的,你是对的。FF发送的唯一内容是文件名。然而,在IE中,我注意到路径和文件名被传递。