从ashx文件上传

时间:2018-06-12 13:23:57

标签: javascript .net upload ashx

我使用post命令从JavaScript函数上传文件。我需要传递附加参数以及上传文件:

         function handleFileSelect(evt) {
         var memberID = '12222';
         var input = document.getElementById('input-file').files[0];
         var formData = new FormData();
         formData.append('file[]', input);
         formData.append('memberid', memberID);     
         $.ajax({
             url: 'FileUploadHandler.ashx',
             type: "POST",
             data: formData,
             processData: false,
             contentType: false,
             success: function (data) {

当我要求返回memberID(用于测试)时,它返回12222,2514。 2514是memberID的变量集,因此重复数据将返回。我这次添加了另一个parm用户名,并添加两次,用逗号分隔两者。像鲍勃一样,鲍勃

ashx代码:

          Public Class FileUploadHandler Implements System.Web.IHttpHandler

Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
              If context.Request.Files.Count > 0 Then
            Dim pathrefer As String = context.Request.UrlReferrer.ToString()
            Dim Serverpath As String = HttpContext.Current.Server.MapPath("Upload_Bio_Files")

            Dim postedFile = context.Request.Files(0)
            Dim memberID As String = HttpContext.Current.Request.Params("memberid")
            context.Response.Write(memberID)

我已经更改了ashx页面中的一些代码以拆分参数并获取第一个值,但我觉得这只是一种解决方法,应该有更好的方法。

1 个答案:

答案 0 :(得分:0)

这是我的解决方案;

如果我将参数设置为我的变量名以外的其他名称,它可以正常工作。我将它们设置为param1和param2,它不会复制值,

         var memberID = '12222';
         var username = 'Robert';
         var input = document.getElementById('input-file').files[0];
         var formData = new FormData();
         formData.append('file[]', input);
         formData.append('param1', memberID);     
         formData.append('param2', username);  

并在ashx方面:

          Dim param1 = context.Request.Params("param1")
          Dim param2 As String = context.Request.Params("param2")