2012-01-03 2 views
1

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

Существует РНР функция

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

Но это возвращение только 500 вместо $ сообщения! Это JS uploadError()

function uploadError(file, errorCode, message) { 
try { 
    var progress = new FileProgress(file, this.customSettings.progressTarget); 
    progress.setError(); 
    progress.toggleCancel(false); 

    switch (errorCode) { 
    case SWFUpload.UPLOAD_ERROR.HTTP_ERROR: 
     progress.setStatus("Errore upload: " + message); 
     this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message); 
     break; 
    case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED: 
     progress.setStatus("Upload fallito."); 
     this.debug("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); 
     break; 
    case SWFUpload.UPLOAD_ERROR.IO_ERROR: 
     progress.setStatus("Errore Server (IO)"); 
     this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message); 
     break; 
    case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR: 
     progress.setStatus("Errore Security"); 
     this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message); 
     break; 
    case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED: 
     progress.setStatus("Limite upload superato."); 
     this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); 
     break; 
    case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED: 
     progress.setStatus("File non valido. Upload ignorato."); 
     this.debug("Error Code: File Validation Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); 
     break; 
    case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED: 
     // If there aren't any files left (they were all cancelled) disable the cancel button 
     if (this.getStats().files_queued === 0) { 
      document.getElementById(this.customSettings.cancelButtonId).disabled = true; 
     } 
     progress.setStatus("Cancellato."); 
     progress.setCancelled(); 
     break; 
    case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED: 
     progress.setStatus("Sospeso."); 
     break; 
    default: 
     progress.setStatus("Errore non gestito: " + errorCode); 
     this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message); 
     break; 
    } 
} catch (ex) { 
    this.debug(ex); 
} 

Если я закомментировать функцию header(), он отображает сообщение об ошибке в строке прогресса (вах), но относиться к нему, как В случае успешного, и это не я должен относиться к нему с сообщением об ошибке. С header() удалены сценарии js перейти на uploadSuccess вместо uploadError.
Документация действительно уродливая, и я больше ничего не нахожу.

ответ

3

Снять заголовок, а затем добавить exit(0) после echo $message. Я думаю, что это решит проблему.

Смежные вопросы