2011-05-26 115 views
5

我必须使用jQuery将文件发送到我的服务器。我如何使用JSON来做到这一点?如何使用JSON和jQuery将文件发送到服务器

文件类型不重要,我打算在我的服务器应用程序上收到一个byteArray或类似的东西。

如果它有帮助我正在使用ASP.NET应用程序,但我的问题不是我在服务器端处理的方式,问题是如何使用jQuery发送文件数据。

我发现了一些使用Flash文件的jQuery上传插件,其他人不使用Flash,但我真正想知道的是该过程是如何工作的,而不仅仅是使用某人已经创建的东西!

回答

4

jQuery是JavaScript。我想你的意思是通过Ajax发送无法完成的数据。您可以做的最好的事情是将iframe用于将文件上传到临时目录(而不是默认临时目录)的页面,然后将该信息返回到父页面以获取文件的保存位置,然后使用它。

无法使用Ajax将文件上载到服务器。这太不安全了。

我收回上述NOW

声明现在,您可以使用Javascript这对于一个新手来说,了解非常复杂的,但现在可能的情况下,这一问题被回答不像发布/下载文件的日期

Using HTML5 file uploads with AJAX and jQuery

2

文件上传不会通过AJAX请求工作。它需要是完整的HTTP请求(POST)。任何使用的jQuery插件通常使用基于Flash或Java的applet,或使用隐藏在页面上的iframe完成真正POST的隐藏iframe技巧。

1

你可以使用$ .ajax调用一个HTTP Post,你不需要做任何手工操作文件内容到json。如果您的表单包含输入(type =“file”),则有效内容将位于HTTP请求中。如果你能给我更多关于你的代码的细节,我可以发送一个代码示例。

+0

我正在规划这个过程,只是检查可能性。如果你有一些工作代码,这可以帮助我非常欣赏。 tnkx – 2011-05-26 17:11:33

+0

ASP.NET Web窗体或MVC? – 2011-05-26 20:05:27

+0

我的问题不是服务器端,我不知道如何发送文件到服务器使用像jQuery的客户端脚本。但我使用webforms – 2011-05-26 20:15:20

-2

我强烈建议为此使用valum的plugin。它有很多支持,并且在浏览器开始实施HTML5支持(如FileReader等)时一直更新。使发送“AJAX”文件请求变得更容易和更轻松。

https://stackoverflow.com/search?q=valums

编辑:对不起,没有充分阅读您的问题 - 我读标题,读第几段,我想我知道你要找的人。恰巧是最后一段有一个我没有看到的排除条款。

+1

正如我所提到的,我期待知道它的过程如何工作! – 2011-05-26 17:40:58

+0

糟糕,我以为你在问一个简洁的编程问题。阅读来源。 – 2011-05-26 17:49:08

+0

非常感谢您的回复,但是您提到了(最后一段)我并未在零部件上进行认证!我很想了解这个过程! – 2011-05-26 17:59:18

1

我使用$ .ajaxFileUpload试过(http://www.phpletter.com/Demo/AjaxFileUpload-Demo/),如果你正在使用ASP.NET MVC,你可以如下

检索的文件
public ActionResult UploadFiles(List<HttpPostedFileBase> uFile) 

用法$ .ajaxFileUpload的:

$.ajaxFileUpload 
(
    { 
     url: "/Controller/UploadFiles", 
     secureuri: false, 
     fileElementId: 'uFile', // the id of the file input controls holding the references to the files 
     dataType: 'json', 
     success: function (data, status) { 
      // needs to handle the json return 
     }, 
     error: function (data, status, e) { 
      // same as error 
     } 
    } 
) 

对我来说它工作得很好。

相关问题