swfupload: как разобрать возвращаемые данные из скрипта upload.php? - PullRequest
2 голосов
/ 28 октября 2011

Погуглил около 1 часа, до сих пор не могу найти, как выполнить эту простую задачу!

upload.php заканчивается:

    echo "FILEID:" . $randomid; // Return the file id to the script

сейчас пытается получить этот FILEID:

          function uploadSuccess(serverData) {
        alert(serverData);
      }

Оповещения [объект Объект].Документация не помогает вообще.Примеры отсутствуют.

Пожалуйста, помогите!

Ответы [ 3 ]

0 голосов
/ 01 ноября 2011

РЕШИТЬ!Это было намного проще.Почему я всегда считаю сложным?функция uploadSuccess (fileObject, serverData, response) {alert (serverData);}

0 голосов
/ 19 февраля 2013

Я использовал JSON с SWFUpload. Проблема чтения FILEID (предложение @Eric) заключается в том, что SWFUpload возвращает имя файла из загруженного файла (например, клиент загрузил «test.txt» на сервер, это имя возвращаемого файла). Это нормально, но если у вас есть PHP-скрипт, который переименовывает файлы (чтобы избежать замены), то имя файла на сервере - не «test.txt», если этот файл существует, а «test (2) .txt».

В uploadSuccess я использовал:

.on('uploadSuccess', function(event, file, serverData){
    var responseData = jQuery.parseJSON(serverData);
    var upload_url_tmp = responseData["name"];
    [...]

На стороне сервера я использовал:

$data = array('name' => $file);
    echo json_encode($data);

Обратите внимание, что $ file var - это имя файла, сохраненного на сервере (после переименования). Работал с PHP 5.4.9 и SWFUpload 2.2.0.1

0 голосов
/ 28 октября 2011

Ну, во-первых, я думаю, что вы неправильно указали входные параметры uploadSuccess. Документация гласит: uploadSuccess (объект файла, данные сервера, полученный ответ) является правильной подписью.

Итак, для начала вам нужно добавить несколько дополнительных параметров в ваш обратный вызов успеха :) Во-вторых, serverData - это то, что выводит ваш сервер.В вашем примере это выглядит так, как будто ответ будет {"FILEID": "somerandomid"} (я предполагаю, что он возвращается как JSON, хотя, возможно, это ошибочное предположение)

В любом случае,чтобы получить доступ к случайно созданному идентификатору, вам просто нужно сделать

function uploadSuccess(fileObject, serverData, response){
    alert(serverData.FILEID); 
 }

Кроме того, вы должны использовать Firebug, который является плагином для Firefox.Это позволит вам установить точку останова в функции обратного вызова и запросить serverData, чтобы увидеть в точности , что в ней.

...