这是我的功能,我只发布json
function test() {
var imgFile = document.getElementById('image');
// var imgData = JSON.stringify(getBase64Image(imgElem));
//var imgData = Convert.FormBase64String(imgElem);
$.ajax({
type: 'POST',
dataType: 'json',
url: "http://localhost:59102/Contacts/AddContact",
data: "json=" + "{\"token\":\"8mVm/nS1OfpU+nlQLbJjqXJ7kJI=VyLGI2GEKkGgtDt0babrAw==\"}",
success: function (returnPayload) {
console && console.log("request succeeded");
},
error: function (xhr, ajaxOptions, thrownError) {
console && console.log("request failed");
},
processData: false,
async: false
});
我不知道如何添加到我的数据,图像,我需要发布json和图像
这是我的控制器
[HttpPost]
[AllowAnonymous]
public JsonResult AddContact(string json, HttpPostedFileBase file)
{}
答案 0 :(得分:0)
你不能通过AJAX(按设计)上传文件,除非你使用的是一个利用其他'技术'的插件,如flash或iframes - 这是一个安全措施,因为JavaScript读取你机器上的本地文件不会是最好的主意
此处有 选项:http://jquery.malsup.com/form/
...否则我建议查找其他许多替代品之一!
答案 1 :(得分:0)
将数据获取到基数64后,您的json应该是一个对象 从你的控制器你的json应该是这样的
{"json":"something here that is a string","file":"some file"}
同样在客户端,您应该有一个n对象,您可以在其上调用JSON.stringify()
var ob = {json:imageDataAsBase64,file:fileDataAsBinary}
虽然我没有看到发送两者的原因。 如果您需要的只是转移图像,您只需将图像作为base64并将其作为json发布