Загрузка SWF: возврат ошибок - PullRequest
3 голосов
/ 01 августа 2011

Я возился с загрузкой SWF, и мне действительно это нравится. Я смог очень легко применить его к своему классу загрузки файлов с очень маленькой проблемой. Однако проблема, с которой я столкнулся, заключается в том, что мне нужно иметь возможность отправлять сообщения об ошибках загрузчику, чтобы пользователь знал, действительно ли его файл был загружен не полностью из-за таких проблем, как его слишком большой размер или неправильный формат. и т. д. Я прочитал пример сценария PHP, который предоставляют авторы загрузки SWF, но я не могу понять, как передать ему ошибки. Это функция обработки ошибок:

/* Handles the error output.  This function was written for SWFUpload for Flash Player 8 which
cannot return data to the server, so it just returns a 500 error. For Flash Player 9 you will
want to change this to return the server data you want to indicate an error and then use SWFUpload's
uploadSuccess to check the server_data for your error indicator. */

function HandleError($message) {
    header("HTTP/1.1 500 Internal Server Error");
    echo $message;
}

Таким образом, функция uploadSuccess ожидает ответа от сервера. Как бы я пошел по поводу кодирования и отправки указанного ответа с использованием "header ()"?

Если я использую это:

header("HTTP/1.1 200 Uploaded File was Successful");

SWF-загрузка возвращает успех, но это сообщение не доходит до функции uploadSuccess.

1 Ответ

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

Я также искал способ отобразить сообщение об ошибке с сервера.Основываясь на комментариях выше, я смог заставить это работать, обновив функцию uploadSuccess () в handlers.js следующим образом:

if (serverData != null && serverData != "ok"){
  progress.setError();
  progress.setStatus(serverData);
} else {
  progress.setStatus("Complete.");
}

Значение, если ответ будет отличным от "ok"отображаться как ошибка.Это кажется довольно хакерским.Я бы предпочел посылать с сервера не-200 ответ и показывать на нем сообщение об ошибке, но насколько я могу судить, это невозможно.Кроме того, способ, которым я настроил это, не будет работать для пользовательских сообщений, которые не являются ошибками.

...