我使用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页面中的一些代码以拆分参数并获取第一个值,但我觉得这只是一种解决方法,应该有更好的方法。
答案 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")