SORU
3 EKİM 2009, CUMARTESİ


Nasıl ve google app engine ile bir görüntü (java)yükle depolamak için

Ve bir resim (dosya) (java) GAE upload saklamak için basit bir yol arıyorum. Basit ve net bir sonuç olmadan saatlerce Googling... : (

Buldu this link.

Ama yine de bir görüntüyü saklamak için nasıl, ve onu almak için ne yapmam gerektiğini bilmiyorum... Basit sunucu uygulaması exmample arıyorum...

CEVAP
3 EKİM 2009, CUMARTESİ


"How do I handle file uploads to my app?" verilen bağlantı resim yükleyebilirsiniz açıklar.

Görüntüleri barındırmak için Datastore service ve diğer veri ile birlikte görüntü saklamak hizmet etmek için kullanmak gerekir.

Burada örnek bir kod. Kendi varlık (ben..... nasıl bir eskiz olarak ifade, değil mi g. iş, kullanıcı, vb) bir resim için bir alan var. Tüm hata işleme ve kurtarma kodunu basitleştirmek için görmezden geldim.

Görüntü ile varlık bildirmek. Diğer alanlarda, örneğin etiketler, konum, vb düşünün

@Entity
public class MyImage {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long id;

    @Persistent
    private String name;

    @Persistent
    Blob image;

    public MyImage() { }
    public MyImage(String name, Blob image) {
        this.name = name; 
        this.image = image;
    }

    // JPA getters and setters and empty contructor
    // ...
    public Blob getImage()              { return image; }
    public void setImage(Blob image)    { this.image = image; }
}

Görüntüleri kabul etmeye başladığı zaman (aynı adı taşıyan bir resim zaten normal dosya upload hataları ek olarak yüklendi durumlar için dikkat edin). ServletFileUpload IOUtils Apache Commons kütüphanenin bir parçası olan sınıflardır.

// Your upload handle would look like
public void doPost(HttpServletRequest req, HttpServletResponse res) {
    // Get the image representation
    ServletFileUpload upload = new ServletFileUpload();
    FileItemIterator iter = upload.getItemIterator(req);
    FileItemStream imageItem = iter.next();
    InputStream imgStream = imageItem.openStream();

    // construct our entity objects
    Blob imageBlob = new Blob(IOUtils.toByteArray(imgStream));
    MyImage myImage = new MyImage(imageItem.getName(), imageBlob);

    // persist image
    PersistenceManager pm = PMF.get().getPersistenceManager();
    pm.makePersistent(myImage);
    pm.close();

    // respond to query
    res.setContentType("text/plain");
    res.getOutputStream().write("OK!".getBytes());
}

Ve son olarak onun adı verilen bir görüntü sunmak için ne zaman

Blob imageFor(String name, HttpServletResponse res) {
    // find desired image
    PersistenceManager pm = PMF.get().getPersistenceManager();
    Query query = pm.newQuery("select from MyImage "  
        "where name = nameParam "  
        "parameters String nameParam");
    List<MyImage> results = (List<MyImage>)query.execute(name);
    Blob image = results.iterator().next().getImage();

    // serve the first image
    res.setContentType("image/jpeg");
    res.getOutputStream().write(image.getBytes());
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ABC News (Australia)

    ABC News (Au

    9 HAZİRAN 2008
  • Nickcidious

    Nickcidious

    6 HAZİRAN 2011
  • The Amazing Atheist

    The Amazing

    20 Kasım 2006