【发布时间】:2013-02-05 04:37:59
【问题描述】:
我正在尝试使用 php 和 ajax 创建一个网页,让用户使用其 API 将文件上传到imm:
http://imm.io/api/(随便看看,只是一个简单的例子)
我想知道如何使用jquery动态上传,想法是重现下面的工作流程:
- 用户填写表格
- 当点击提交按钮时,它将获取表单值并将它们发送到 imm.io
- 等到收到 json 响应
- 显示更新 div 的错误/成功消息
我的代码:
var request = $.ajax({
url: 'http://imm.io/store/',
type: "POST",
cache: false,
data: { ??? }, //here my problem resides
dataType: "json"
});
//waiting ultil the request be finished
$.when( request ).then(function(data, textStatus, jqXHR){
console.log(data);
});
如果您在上面注意到,??? 表示问题所在,因为我不知道如何将文件值发送为“数据”所需的 json 格式。
在 SO 中看到一些问题,好像 ajax 无法发送文件。
所以,我只需要一只手来指导正确的方向......还有一件事:我从未使用过 CURL php 扩展,但我认为这可能是另一种选择,对吧?
编辑, 我忘了告诉你为什么我没有使用上面问题中提到的插件:因为插件不会等到请求完成,所以我从来没有得到服务器的真正响应。
【问题讨论】:
-
你知道api是否支持(跨源)ajax帖子吗?看起来不像。
-
文档不清楚,所以我不确定
-
@Musa,imm.io 接受 base64 上的图像。有用吗?
-
use toDataURL() to get the base64 representation (actually, it's a data: URL but it contains the base64-encoded image).我认为这是正确的方法:p 我会尽快在这里更新,谢谢@Musa
标签: php ajax curl image-uploading