Получить пользовательский ответ от PHP для загрузки файлов Jquery

0

Я хочу получить пользовательский ответ от службы 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"}]
  • 0
    Не могли бы вы открыть консоль firebug в браузере и посмотреть данные ответа ajax? Я имею в виду весь ответ.
  • 0
    Да, я вижу данные ответа. Но есть два почтовых запроса на один и тот же URL, и оба ответа ajax присутствуют там.
Показать ещё 4 комментария
Теги:
file-upload
blueimp

1 ответ

0

Вы получаете ответ по умолчанию из-за 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;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню