Я хочу получить пользовательский ответ от службы 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"}]
Вы получаете ответ по умолчанию из-за Blueimp. Вы можете получить последний файл из db с другим ajax-запросом в blueimp;
.....
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) {
$.ajax({
url: "getlatestfile.php",
method: "POST",
data: "url=" + result[0].url, // this is unique url of uploaded file
success: function(response) {
//response has doc id
}
});
});
}
....
и в вашем обработчике php;
getlatestfile.php
<?php
......
if (empty($_POST["url"])) {
die("Url must be specified");
}
$url = $_POST["url"];
$sql = "SELECT *FROM your_table WHERE url = $url ORDER BY date DESC LIMIT 1";
// get $result
echo $result;