swfupload: как разобрать возвращаемые данные из скрипта upload.php?

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

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

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

теперь пытаюсь получить этот файл:

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

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

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

3 ответа

Решение

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

Я использовал 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

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

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

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

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

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

Другие вопросы по тегам