Dosyaları masaüstünden sürüklemek için jQuery'nin drop
olayını kullanmak mümkün mü?Masaüstünden sürüklenen dosyaları yüklemek için jQuery's drop olayı nasıl kullanılır?
Öyleyse, bırakılan dosya verilerini nasıl alabilirim?
Dosyaları masaüstünden sürüklemek için jQuery'nin drop
olayını kullanmak mümkün mü?Masaüstünden sürüklenen dosyaları yüklemek için jQuery's drop olayı nasıl kullanılır?
Öyleyse, bırakılan dosya verilerini nasıl alabilirim?
Bu biraz dağınık (en az 3 olayın üstesinden gelmeniz gerekiyor) ancak mümkün.
İlk olarak, böyle bu olaylar için varsayılan eylemleri dragover
ve dragenter
için eventhandlers ekleyip önlemek gerekir:
$('#div').on(
'dragover',
function(e) {
e.preventDefault();
e.stopPropagation();
}
)
$('#div').on(
'dragenter',
function(e) {
e.preventDefault();
e.stopPropagation();
}
)
Sonra e.originalEvent.dataTransfer.files
ile düştü dosyaları açılan işleyici ekleyin ve erişebilir:
$('#div').on(
'drop',
function(e){
if(e.originalEvent.dataTransfer){
if(e.originalEvent.dataTransfer.files.length) {
e.preventDefault();
e.stopPropagation();
/*UPLOAD FILES HERE*/
upload(e.originalEvent.dataTransfer.files);
}
}
}
);
Artık dosyaları div içindeki masaüstü/gezgin/bulucudan sürükleyip bunlara erişebilirsiniz.
Neden Gereklidir varsayılan dragover ve dragenter davranışını bastırmak için? –
Bazı tarayıcılar, bir dosyayı tarayıcıya sürüklemeye başladığınızda bazı garip şeyler yapar. Bu gerçekten gerekli değil. Bu olaylarla, dosyayı bırakmanız gereken div'u vurgulamak gibi bazı güzel özellikler de ekleyebilirsiniz. – Alex
Bir şekilde e.originalEvent.dataTransfer.files yöntemini kullanmak ve dosya girişine ayarlamak mümkün mü? – loostro
olası yinelenen [jquery ile html5 dosya API örneğin?] (Http://stackoverflow.com/questions/4722500/html5s-file-api-example-with-jquery) –