如何在jQuery中通过ajax将文件发送到我的服务器?

时间:2013-10-09 14:43:03

标签: javascript ajax file jquery

首先,您必须原谅我在使用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

保存它

1 个答案:

答案 0 :(得分:0)

我会使用HTML5和纯javascript或jquery插件(有很多很好的跨浏览器用于下载可以调整的文件,你真的需要在这里进行格式化)来为旧浏览器创建后备。然后使用ajax将数据发送到服务器脚本,您可以将发布的数据写入服务器端的文件。

现在不是我清醒的时候,请原谅我没有提供更多细节,如果你还有问题请联系我。

注意:我没有使用网页的经验,但由于它使用了c#,我认为它与MVC类似,所以一旦你用ajax将数据发布到正确的脚本/函数,你应该没有问题将它写入文件尽管有语言。