【发布时间】:2014-05-12 10:57:56
【问题描述】:
我想从 PHP 服务获取自定义响应以进行 jquery 文件上传。
<?php
//database query to insert data
$sql_params['document_name'] = name;
$sql_params['document_location'] =document_location;
$sql_params['document_size'] = document_size;
$sql_params['document_id'] = $document_id;
echo json_encode($sql_params);
?>
Javascript 代码:
this.$('#fileupload').fileupload({
dataType: 'json',
add: function(e, data) {
var filename = data.files[0].name;
var jqXHR = data.submit()
.success(function(result, textStatus, jqXHR) {
console.log('success');
console.log(result);
console.log(textStatus);
})
.error(function(jqXHR, textStatus, errorThrown) {
}).complete(function(result, textStatus, jqXHR) {
console.log('complete');
console.log(result);
});
},
done: function(e, data) {
console.log(data.result);
},
progressall: function(e, data) {
}
});
this.$('#fileupload').fileupload('option', {
url: 'api/app/file',
maxFileSize: 100000,
acceptFileTypes: /(\.|\/)(txt|pdf|doc|docx|jpg|gif|xls|xlsx|rtf)$/i
});
我想得到 json 响应:
{"document_name":"file (9).txt","document_location":"location","document_size":2720,"document_id":"44"}
但我总是得到:
[{"name":"file (9).txt","size":2720,"type":"text\/plain","url":"location","delete_url":"some URL","delete_type":"DELETE"}]
【问题讨论】:
-
能否请您在浏览器上打开 firebug 控制台并查看 ajax 响应数据?我的意思是整个响应。
-
是的,我可以看到响应数据。但是对于同一个 URL 有两个 post 请求,并且两个 ajax 响应都存在。
-
请把它们放在你的问题中以便分析
-
我已经发布了两个 JSON 响应。请告诉我你需要什么。
-
顺便说一下,这是由于 blueimp 的默认响应。为什么要获得自定义响应?
标签: javascript php jquery file-upload blueimp