2014-09-28 16 views
7

dropzone.js dosyasında, error numaralı bir olay var, ancak bunu PHP'den nasıl tetikleyeceğiniz konusunda herhangi bir belge bulamıyorum.PHP kullanarak DropZone'daki hata olayını nasıl tetikleyebilirim?

PHP, 404, 500, 503, vb. Dahil olmak üzere çeşitli üstbilgi() yanıtlarını göndermeyi denedim, ancak bu olay henüz tetiklenmedi.

Ne yapmak istediğim, sunucunun geçerli olup olmadığını görmek için mimi denetler ve geçerli değilse, dosyayı atarım ve ideal olarak - dropzone'un buna göre yanıt verebilmesi için bir hata döndürürüm. JavaScript taraftan

, şu denedi:

.on("complete", function(file,response) { 
    console.log(response); 
} 

.on("error", function(file,response) { 
    console.log(response); 
} 

.on("success", function(file,response) { 
    console.log(response); 
} 

... Ancak response i php komut JSON veya düz metin dönmek bile tanımlanmamıştır. Dropzone.js'nin tam sunucu yanıtını almayı desteklediği ya da en azından özel işleyiciye yükseltmediği görülüyor. YALNIZCA olaylara ikinci bir paramın geçirilmesiyle ilgili herhangi bir referans gördüğüm yer, bu soruyu doğrudan sormayan diğer sorularda SO'da.

Sunucu yanıtını almanın bir yolu olmalı (geçmişte jQuery POST ve jqUpload gibi diğer yükleyici javascript ile yaptığım gibi). Dosya aktarımı tamamlanmasa bile, yüklemenin başarısız olduğunu gösteren bir komut tetikleyemiyorum, çünkü bir yanıt için komut dosyasında beklemem gerekiyor. --- Bu, muhtemelen bir şeye baktığım anlamına geliyor, bu yüzden bir sunucunun nasıl yanıt vermesi gerektiğine dair belgelerinin kesinlikle bir şey ortaya koymadığı için yardım çağırıyorum, ancak benim durumumda PHP'yi kullanıyorum.

Şimdiden teşekkürler.

cevap

11
<?php 
header('HTTP/1.1 500 Internal Server Error'); 
header('Content-type: text/plain'); 
$msg = "Your error message here."; 
exit($msg); 
?> 

NOT: "çıkış ($ msg)"

<script type="text/javascript"> 
      $(document).ready(function() { 

Dropzone.options.dropzone = { 

    maxFilesize: 10, 
    init: function() { 
     this.on("uploadprogress", function(file, progress) { 
     console.log("File progress", progress); 
     }); 
    } 

}; 
      }); 
     </script> 

Thats alışkanlık çalıştırmak başka kullanıcıyı yönlendirmeyin !.

1

çalışmalıdır. 200 olmayan yanıt üstbilgisini gönderirseniz, Dropzone bunu bir hata olarak algılar ve error(file, response) olayını tetikler. Hata bilgisi JSON olarak gidip sadece response baskı o bir nesne gibi bu oldukça 4 seviyelerine kadar nesneyi yazdırır console.log(JSON.stringify(responseText, null, 4));

kullanabileceğiniz faydalı bir şey göstermez response.your_msg_variable

Not erişilebilir olabilir aşağı

İlgili konular