2014-05-24 13 views
5

Muszę sprawdzić, czy plik ma prawidłowy typ MIME, czy rozmiar pliku jest prawidłowy i czy jego wymiary są prawidłowe, a następnie załadować plik.Jak wyświetlić niestandardowy komunikat o błędzie w DropzoneJS?

Kiedy więc wszystko jest OK, mogę użyć:

complete: function(file){ 
    // do something here. 
} 

ale co jeśli rozmiar pliku jest nieprawidłowy? W moim skryptu PHP I zwróci komunikat o błędzie:

return json_encode(['error' => 'size is invalid']); 

LUB

return Response::json(['error' => 'size is invalid'], 500 ]; 
// this is Laravel 4 syntax. returns a json array and 500 as status code. 

ale jak mogę sobie z tym poradzić error w DropzoneJS?

Próbowałem dodać drugi parametr do funkcji complete(), ale nie działa.

complete: function(file, response){ 
    console.log(response); // this does not work. 
} 

Odpowiedz

7

Aby uzyskać odpowiedź po plik został przekazany do użytkowania tego serwera w DropzoneJS:

success: function(file, response) { 
    alert(response); 
} 

A do sprawdzania pliku przed wysłaniem go używać to:

complete: function(file) { 
    if (file.size > 3.5*1024*1024) { 
    alert("File was Larger than 3.5Mb!"); 
    return false; 
    } 

    if(!file.type.match('image.*')) { 
    alert("Upload Image Only!"); 
    return false; 
    } 
} 

Jeśli urządzenie serwer wraca response w JSON, musisz użyć JSON.parse przed alert.

Mam nadzieję, że ci to pomoże! Twoje zdrowie! :)

+2

Wystarczy dodać coś moim zdaniem jest przydatny: należy słuchać zdarzeń (http://www.dropzonejs.com/#toc_8) nie przepisywanie go (https://github.com/enyo/dropzone/issues/297). Twoje zdrowie! :) – amandasantanati

+0

@amandasantanati To naprawdę naprawdę dobre, pozwoli ci dodać więcej funkcji. +1 dla linków. –

1

Żeby uprościć co @amandasantanati powiedział, aby nie kliknąć wokół:

nie rób complete: ... ale zamiast:

init: function() 
    { 
     this.on("complete", function(file) { 
      if (file.size > 3.5*1024*1024) { 
       this.removeFile(file); 
       alert('file too big'); 
       return false; 
      } 

      if(!file.type.match('image.*')) { 
       this.removeFile(file); 
       alert('Not an image') 
       return false; 
      } 
     }); 
    }, 
1

Ustaw kod odpowiedzi HTTP http_response_code (415) ; // Nieobsługiwany typ nośnika lub kod_odpowiedzi http (415); // Nie Akceptowalny

function showError($message) 
    { 
     http_response_code(415); 
     die($message); 
    } 

enter image description here

Powiązane problemy