enctype='multipart/form-data'HTML表单中的含义是什么?我们何时应该使用它?
我目前正在使用Chrome Addon Postman-REST Client轻松创建POST/GET请求,这是一个非常好的工具.
现在我想调试一个上传脚本,我正在寻找一个工具来将请求编码为"multipart/form-data",这样我也可以发送一个文件.
谢谢你的帮助
我使用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) 的XMLHttpRequest的2级标准(还是工作草案)定义FormData的接口.此接口允许将File对象附加到XHR请求(Ajax请求).
顺便说一句,这是一个新功能 - 在过去,使用了"隐藏iframe技巧"(在我的另一个问题中阅读).
这就是它的工作原理(例子):
var xhr = new XMLHttpRequest(),
fd = new FormData();
fd.append( 'file', input.files[0] );
xhr.open( 'POST', 'http://example.com/script.php', true );
xhr.onreadystatechange = handler;
xhr.send( fd );
Run Code Online (Sandbox Code Playgroud)
where input是一个<input type="file">字段,handler是Ajax请求的成功处理程序.
这在所有浏览器中都很漂亮(除了IE之外).
现在,我想使这个功能与jQuery一起使用.我试过这个:
var fd = new FormData();
fd.append( 'file', input.files[0] );
$.post( 'http://example.com/script.php', fd, handler );
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用(抛出"非法调用"错误 - 截图在这里).我假设jQuery需要一个表示form-field-names/values的简单键值对象,而FormData我传入的实例显然是不兼容的.
现在,由于可以将FormData实例传入xhr.send(),我希望它也可以使它与jQuery一起使用.
更新:
我在jQuery的Bug Tracker上创建了一个"功能票".它在这里:http://bugs.jquery.com/ticket/9995
我被建议使用"Ajax prefilter"...... …
如何multipart/form-data在python中发送请求?如何发送文件,我理解,但如何通过这种方法发送表单数据无法理解.
有没有人知道如何使用HttpClient.Net 4.5 multipart/form-data上传?
我在互联网上找不到任何例子.
我怎样才能将我的JS对象转换为FormData?
我想要这样做的原因是,我有一个我用~100表单字段值构造的对象.
var item = {
description: 'Some Item',
price : '0.00',
srate : '0.00',
color : 'red',
...
...
}
Run Code Online (Sandbox Code Playgroud)
现在我被要求将上传文件功能添加到我的表单中,当然这是不可能通过JSON,因此我打算转移到FormData.那么有什么方法可以将我的JS对象转换为FormData?
我想知道是否有人可以与我分享一个包含以下内容的multipart/form-data示例:
我正在尝试做一些我认为相对简单的事情:使用Android SDK将图像上传到服务器.我找到了很多示例代码:
http://linklens.blogspot.com/2009/06/android-multipart-upload.html
但是对我来说都不起作用.我一直遇到的困惑是制作多部分请求真正需要的东西.Android的多部分上传(带图片)的最简单方法是什么?
任何帮助或建议将不胜感激!
我对HttpClient非常环保,而且我发现缺少(和或明显不正确)的文档非常令人沮丧.我正在尝试使用Apache Http Client实现以下帖子(如下所列),但不知道如何实际执行此操作.我将在下周的文档中埋葬自己,但也许更有经验的HttpClient程序员可以尽快给我一个答案.
帖子:
Content-Type: multipart/form-data; boundary=---------------------------1294919323195
Content-Length: 502
-----------------------------1294919323195
Content-Disposition: form-data; name="number"
5555555555
-----------------------------1294919323195
Content-Disposition: form-data; name="clip"
rickroll
-----------------------------1294919323195
Content-Disposition: form-data; name="upload_file"; filename=""
Content-Type: application/octet-stream
-----------------------------1294919323195
Content-Disposition: form-data; name="tos"
agree
-----------------------------1294919323195--
Run Code Online (Sandbox Code Playgroud) jquery ×3
ajax ×2
form-data ×2
html ×2
http ×2
javascript ×2
.net-4.5 ×1
android ×1
c# ×1
file-upload ×1
html5 ×1
http-headers ×1
java ×1
multipart ×1
python ×1
python-2.7 ×1
upload ×1