是否可以使用jquery ajax调用伪造multipart / form-datapost?

我希望能够将multipart / form-data消息发回服务器。 现在我知道我不能直接用ajax调用发送文件,我不想发送任何实际文件。 我想格式化post,以便模拟文件传输, this is the file data字符串,就好像它是文件的内容和test.txt一样,就好像它是文件名一样。

例如在后端(php)我想使用echo $_FILES['uploadedfile']['name']并查看test.txt

我假设我将不得不捣乱发送的标题,但不确定我必须设置什么。 我还假设我必须以不同于我通过ajax调用发送的其他数据来处理伪文件数据。 现在我的ajax调用看起来像这样:

  $.ajax({ beforeSend: function(req) { req.setRequestHeader("Accept", ''); req.setRequestHeader("Accept", $('#type').val()); }, 'url': $('#url').val(), 'type': $('#verb').val(), 'data': data, 'mimeType': 'multipart/form-data', 'complete': function (jqXHR, textStatus) { var msg = "Data: " + dump(data); msg += "

Status: " + jqXHR.status + " (" + jqXHR.statusText + " - " + textStatus + ")
"; msg += jqXHR.getAllResponseHeaders().replace(/\n/g, "
"); msg += "---
" + jqXHR.responseText; $('#results').html(msg); } });

您可以使用FormData修补jquery, https://github.com/francois2metz/html5-formdata并查看此问题使用jQuery.ajax发送multipart / formdata