【发布时间】:2015-10-14 00:53:41
【问题描述】:
所以我有一个有趣的问题。我有一个表单,用户在画布上绘制图像(想想签名板)。然后我需要将图像发送到我的 C# 控制器(我使用的是 ASP.NET MVC 5)。代码我有较短字符串的函数,但是当我尝试传递 PNG 数据时,它太长了,我收到 HTTP Error 414. The request URL is too long 错误。这是我的代码:
HTML:
<form id="mainForm" action="submitUserAnswer" method="post">
<input type="hidden" id="userOutput" name="output" value="" />
//...other form elements, signature box, etc.
</form>
Javascript:
function goToNextQuestion() {
var output = $('#signature').jSignature("getData");
$('#userOutput').val(output);
$('#mainForm').submit();
}
C#:
public ActionResult submitUserAnswer()
{
//use the userOutput for whatever
//submit string to the database, do trigger stuff, whatever
//go to next question
System.Collections.Specialized.NameValueCollection nvc = Request.Form;
string userOutput = nvc["output"];
ViewBag.Question = userOutput;
return RedirectToAction("redirectToIndex", new { input = userOutput });
}
public ActionResult redirectToIndex(String input)
{
ViewBag.Answer = input;
return View("Index");
}
我的 png 数据很长,所以这个错误是有道理的。我的问题是如何将 png 数据返回到我的控制器?
【问题讨论】:
-
您将不得不找到另一种发送数据的方法(与 Url 分开)IE 对 Url 长度有 1042 个字符的内部硬限制,我怀疑 IIS 也是如此。
-
这可能有多种原因。 1) IIS 可能对您可以使用 POST 请求传输的最大数据有限制。检查设置。 2)您需要以某种格式对文件进行编码。这样就可以在服务器端恢复镜像了。
-
我将如何以某种格式对文件进行编码?
标签: javascript c# asp.net asp.net-mvc png