首先,您必须原谅我在使用Ajax提交表单方面缺乏知识;因此,我可能会问一两个愚蠢的问题,因为我试图弄清楚我能做什么,不能做什么。
其次,我知道如何使用通常看起来很像这样的简单的Ajax请求:
$.ajax({
url: "/SomeDir/SomePage.cshtml",
async: true, //sometimes this is false, depending on how I want this to operate.
type: "POST", //most of the time this is 'GET' but it depends on whether server-side changes will be taking place or sensitive data will be passed.
dataType: "html", //This has the potential to change a lot.
data: { someVar: someVarValue }, //any number of name/value pairs to send to the server with the request.
success: function (response) {
//success callback function code here.
},
error: function (jqXHR, textStatus, error) {
//code to run if error occurs (usually displaying text showing the 'textStatus' and 'error' values.
}
});
好的,现在我已经向您展示了我通常如何执行Ajax请求(只是标准的jQuery方式),您将知道我在这方面的位置。
现在我的目标是:
我有一个简单的<input id="inFile" name="inFile" type="file" />
,下面有一个自制的<button>
。单击按钮时,我需要的是Ajax将该文件带到服务器,将其保存在指定的目录中(我不需要该部分的说明),然后重新更新页面(我不需要帮助那部分)。
相当多,我需要知道的是如何在文件完整(使用或不使用表单)的同时从客户端转到服务器端,而不刷新页面。
我原以为或许我对Ajax type: "POST"
缺乏足够的了解,以至于它本身可以提供我要求的一些功能,我甚至都不知道。
我知道我可以使用$.ajax();
函数的“data”属性(它被称为属性吗?)发送我想要的任何数据,但是如果它应该这样做,我不知道如何将文件保存到变量/对象/集合中以便使用$.ajax()
函数进行发送。
很抱歉我对此缺乏了解,但我之前从未使用Ajax完成这项特殊任务,而且我似乎也找不到任何相关内容。
简而言之:
我真正需要的是将文件从客户端传送到服务器端,以便我可以使用C#System.IO
答案 0 :(得分:0)
我会使用HTML5和纯javascript或jquery插件(有很多很好的跨浏览器用于下载可以调整的文件,你真的需要在这里进行格式化)来为旧浏览器创建后备。然后使用ajax将数据发送到服务器脚本,您可以将发布的数据写入服务器端的文件。
现在不是我清醒的时候,请原谅我没有提供更多细节,如果你还有问题请联系我。
注意:我没有使用网页的经验,但由于它使用了c#,我认为它与MVC类似,所以一旦你用ajax将数据发布到正确的脚本/函数,你应该没有问题将它写入文件尽管有语言。