相关疑难解决方法(0)

使用jQuery.ajax发送multipart/formdata

我使用jQuery的ajax函数将文件发送到服务器端PHP脚本时遇到问题.可以获取文件列表$('#fileinput').attr('files')但是如何将此数据发送到服务器?使用文件输入时$_POST,服务器端php脚本上的结果array()为0(NULL).

我知道这是可能的(虽然我到目前为止还没有找到任何jQuery解决方案,只有Prototye代码(http://webreflection.blogspot.com/2009/03/safari-4-multiple-upload-with-progress.html) ).

这似乎是相对较新的,所以请不要通过XHR/Ajax提及文件上传,因为它肯定有用.

我需要Safari 5中的功能,FF和Chrome会很好但不是必需的.

我现在的代码是:

$.ajax({
    url: 'php/upload.php',
    data: $('#file').attr('files'),
    cache: false,
    contentType: 'multipart/form-data',
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});
Run Code Online (Sandbox Code Playgroud)

ajax jquery file-upload multipartform-data form-data

545
推荐指数
8
解决办法
83万
查看次数

什么是http多部分请求?

我已经写了一段时间的iPhone应用程序,将数据发送到服务器,接收数据(通过HTTP协议),而不用考虑太多.大多数情况下,我理论上熟悉流程,但我不太熟悉的部分是HTTP多部分请求.我知道它的基本结构,但它的核心是我.

似乎每当我发送不同于纯文本(如照片,音乐)的东西时,我都必须使用多部分请求.有人可以简单地向我解释为什么使用它以及它的优点是什么?

如果我使用它,为什么以这种方式发送照片更好?

multipart http-headers

278
推荐指数
2
解决办法
26万
查看次数

如何使用REST Web服务上载包含元数据的文件?

我有一个REST Web服务,目前公开此URL:

HTTP://服务器/数据/媒体

用户可以POST使用以下JSON:

{
    "Name": "Test",
    "Latitude": 12.59817,
    "Longitude": 52.12873
}
Run Code Online (Sandbox Code Playgroud)

为了创建新的媒体元数据.

现在我需要能够在媒体元数据的同时上传文件.解决这个问题的最佳方法是什么?我可以引入一个名为filebase64 的新属性编码文件,但我想知道是否有更好的方法.

还有multipart/form-data像HTML表单一样使用,但我正在使用REST Web服务,我想尽可能坚持使用JSON.

rest json web-services file-upload

233
推荐指数
6
解决办法
23万
查看次数

Angular POST multipart/form-data with application/json & text/csv

问题

尝试使用 JSON 格式的文件上传和模型数据发送 multipart/formdata post 请求。不知道为什么没有太多的工作参考,无法使那些存在的工作。也可能做错了什么,或者让它变得更复杂。

参考文献

快速调整我的尝试

不知何故,我的帖子请求有效负载上的 json 内容似乎不包含自动识别的 Content-Type: application/json。

即使将 POST 的内容类型设置为 undefined/false 也不起作用。需要一些关于问题或如何解决的建议?

小提琴上传的网络日志

请求头

Accept:application/json, text/plain, */*
Content-Length:361
Content-Type:multipart/form-data; boundary=----WebKitFormBoundary7NukqN6GtRwugBSJ
Run Code Online (Sandbox Code Playgroud)

请求有效载荷

------WebKitFormBoundary7NukqN6GtRwugBSJ
Content-Disposition: form-data; name="file"; filename="sample.csv"
Content-Type: text/csv


------WebKitFormBoundary7NukqN6GtRwugBSJ
Content-Disposition: form-data; name="data"

{"name":"a good name","comments":"some comments"}
------WebKitFormBoundary7NukqN6GtRwugBSJ--
Run Code Online (Sandbox Code Playgroud)

post json file-upload multipartform-data angularjs

5
推荐指数
1
解决办法
4589
查看次数