Bunu yapmanın iki yolu vardır, kolay yol ve zor yol.
Kolay Yönlendirme: Clipboard API'u kullanın. Bu bir "HTML5" API'sıdır, ancak yalnızca Chrome'da doğru şekilde desteklenir. Bu, yapıştırılmış bir görüntünün panonuzdan Blob
olarak erişmenize izin verir. Sonra bu Blob
sunucunuza bir XHR2 isteği ile gönderebilirsiniz.
Zorluk: Ne yazık ki, Chrome dışındaki tüm tarayıcılar için yapmanız gereken budur ve hoş değil. Bir "yapıştırma hedefi öğesi" nin içinde gizli bir içerik düzenlenebilir DIV oluşturmanızı içerir. Bu yapıştırılan görüntüyü alacaktır. Ardından, görüntüyü Blob
'a dönüştürülmesi gereken bir <canvas>
üzerine çizmeniz gerekecektir. Ama bekleyin, daha iyi olur. Bazı durumlarda (muhtemelen birçok durumda) çapraz etki alanı resimleri (sunucu tarafı) da gerekebilir. Görüntüyü barındıran sunucu, barındırdıkları görüntülere CORS isteklerine izin vermiyorsa bu gerekli olabilir. Bu durumla ilgili daha fazla bilgiyi this MDN article numaralı telefondan okuyabilirsiniz.
Korumakta olduğum, javascript tabanlı bir yükleyici olan Fine Uploader, görüntüyü yalnızca yapıştırma yoluyla desteklemeyi, ancak şu anda yalnızca Chrome'da desteklemektedir. Yeterince istek aldığım takdirde Clipboard olmayan API tarayıcılarında bunu uygulama zahmetinden geçeceğimi düşündüm. Açıkçası, Clipboard API'sini uygulamayan tarayıcılarda CORS özellikli olmayan görüntüleri işlemek için, görüntü sunucu tarafının proxy edilmesini gerektirdiği için, çabaya değer gibi görünmüyor (tabii ki, kullanıcı tabanım bana bunu söylemezse) bunu istiyorlar).
Bu yardımcı olur umarım.
Neden oylama? –
Oy vermedi, ama bir şey denemeden bir çözüm istediğin için bunu söyleyebilirim. – Daedalus
Her zaman yaptığım gibi bu soruyu göndermeden önce denedim ama ne işe yaramadığımı ya da sadece Chrome'da çalışmamı sağladım, bu yüzden –