JQuery ile bir resim yükleyebilirsiniz?

4 Cevap php

ben şu anda php ile resim gibi diyagramlar üreten bir sınıf üzerinde çalışıyorum. Jquery ile dinamik olarak bu resimleri yüklemek istiyorum. Ben bunu nasıl yapabilir? I resme post parametreleri geçirmek gerekiyor çünkü alışkanlık gerçek bir resim dosyası, i ... ajax ile diyoruz Ve ben sadece src gibi php komut tanımlamak olamaz dosyasının sadece içeriğe sahip ...

EDIT:

Tamam .. Ben biraz daha açıklamak zorunda düşünüyorum ...

Burada html kodu:

<div>
<img id="image" />
</div>
<input type="button" onclick="loadPicture();" />

When the button is pressed, some data should be send to the php script that generates the picture. A Callback function or something similar should now post the picture into the img- element. Simply posting the Picture into the img tag doesnt work. The following code would work, but how can i add POST params??

<img src="<scriptname>.php" />

4 Cevap

Http POST istekleri kaynaklarını iade etmek demek değildir. Neden bir GET isteği kullanmak değil mi? Bunu yapmak için 'DİNLENME' yolu bir POST isteği ile görüntü oluşturmak ve daha sonra bir GET isteği ile yük olacaktır. Eğer kaynaklar için bir URL eşleme tanımlamanız gerekir.

Hiçbir insan! Onu görmek gibi temelde 3 seçeneğiniz var.

Method 1 - Inline the image

Brayn dediğini yapmak, ama data bir base64 encoding of your image olmalıdır.

$("#div").html(data); // instead of this
$('#image').attr('src','data:image/gif;base64,'+data); // try something like this

Ama görüntüyü inlining veya sonrası verileri geçirerek fikrini sevmiyorum. Base64 çok büyük görüntüler için biraz büyük alabilirsiniz.

Method 2 - Save the image

Sen $.post eskisi gibi veriler, daha sonra save görüntü ve resmin URL'sini dönebilirsiniz.

Method 3 - Use GET

GET veri kabul etmek için görüntü üreten komut dosyasını değiştirin. Eğer geçmek için bir çok veri varsa, onu bir şekilde sıkıştırarak deneyin veya perhaps Eğer SESSION değişkenleri kullanabilirsiniz.

Ben doğru dediğini onu var eğer çok emin değilim ama sen onun geri arama ihtiyacınız ne olursa olsun dönecekti $. Mesajı () yöntemini kullanabilirsiniz. Böyle bir şey:

$.post("file.php",{param: val},function(data){
    $("#div").html(data);
})

Daha fazla açıklamak olsaydı belki daha iyi anlayacaksınız. Umarım bu yardımcı olur.

AJAX / jQuery kullanmak için herhangi bir gerçek ihtiyaç var mı? Serin çünkü Yoksa sadece bunu koyarak?

İşte ben yapardım:

if (isset($_POST['createImage'])){
    // This means that the button was clicked
    // Generate your image, and then display it:
}

// Regardless, you would now show your form
// That way if values were to be changed, the graphic can be recalculated.

Bu şekilde, istenen çıktı (grafik yükleme formu çıktısı bağlı) ve bu çıktıyı üretmek için tek bir tıklama ulaşmak.