`
neeleon
  • 浏览: 181733 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

FileUpload google app engine java(图片上传实例demo)

阅读更多

GAE Java 上传(图片)文件到datastore,这个实例(demo)是上传图片到gae datastore,然后从gae datastore中取得图片文件流显示图片文件。上传用到了 Apache Commons FileUpload。直接上代码。

 

Photo.java

       1.  public class Photo {
       2.  
       3.     @PrimaryKey
       4.     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
       5.     private Long id;
       6.     
       7.     @Persistent
       8.     private Blob photo;
       9.  
      10.     ...Set&Get...
      11. }
    
     

      PhotoDao.java

      1. public class PhotoDao {
      2.     private static PhotoDao _instance = null;
      3.  
      4.     public static PhotoDao getInstance() {
      5.         if (_instance == null) {
      6.             _instance = new PhotoDao();
      7.         }
      8.         return _instance;
      9.     }
      10.  
      11.     //
      12.     public String insertPhoto(Photo photo) {
      13.         PersistenceManager pm = PMF.get().getPersistenceManager();
      14.         try {
      15.             pm.makePersistent(photo);
      16.         } finally {
      17.             pm.close();
      18.         }
      19.         return photo.getId().toString();
      20.     }
      21. }
      22.  
      23.     public Photo getById(Long id) {
      24.         PersistenceManager pm = PMF.get().getPersistenceManager();
      25.         Query query = pm.newQuery(Photo.class);
      26.         query.setFilter("id == idParam");
      27.         query.declareParameters("Long idParam");
      28.         List photo = null;
      29.         try {
      30.             photo = (List) query.execute(id);
      31.             if (photo.isEmpty()){
      32.                 return null;
      33.             }else{
      34.                 return photo.get(0);
      35.             }
      36.            
      37.         } finally {
      38.             query.closeAll();
      39.         }
      40.     }

      The PhotoServlet, I used Apache Commons FileUpload: commons-fileupload.

      PhotoServlet.java

      1. import org.apache.commons.fileupload.FileItemIterator;
      2. import org.apache.commons.fileupload.FileItemStream;
      3. import org.apache.commons.fileupload.FileUploadException;
      4. import org.apache.commons.fileupload.servlet.ServletFileUpload;
      5. import org.apache.commons.io.IOUtils;
      6.  
      7. public class PhotoServlet extends HttpServlet {
      8.     /*display image*/
      9.     public void doGet(HttpServletRequest req, HttpServletResponse resp)
      10.             throws IOException {
      11.         String id = req.getParameter("id");
      12.         Photo photo = PhotoDao.getInstance().getById(Long.parseLong(id));
      13.         Blob b = photo.getPhoto();
      14.         resp.setContentType("image/jpeg;charset=utf-8");
      15.         resp.getOutputStream().write(b.getBytes());
      16.         resp.getOutputStream().close();
      17.     }
      18.     /*upload image and add to datastore*/
      19.     public void doPost(HttpServletRequest req, HttpServletResponse resp)
      20.             throws IOException {
      21.         ServletFileUpload upload = new ServletFileUpload();
      22.         FileItemIterator iterator = null;
      23.         try {
      24.             iterator = upload.getItemIterator(req);
      25.         } catch (FileUploadException e) {
      26.             e.printStackTrace();
      27.         }
      28.         try {
      29.             while (iterator.hasNext()) {
      30.                 FileItemStream item = iterator.next();
      31.                 InputStream stream = item.openStream();
      32.                 if (item.isFormField()) {
      33.                     // Handle form field
      34.                 } else {
      35.                     Blob bImg = new Blob(IOUtils.toByteArray(stream));
      36.                     Photo photo = new Photo(bImg);
      37.                     String pid = PhotoDao.getInstance().insertPhoto(photo);
      38.                     req.setAttribute("Pid", pid);
      39.                 try {
      40.                     req.getRequestDispatcher("photo.jsp").forward(req, resp);
      41.                 } catch (ServletException e) {
      42.                     e.printStackTrace();
      43.                     }
      44.                 }
      45.  
      46.             }
      47.         } catch (FileUploadException e) {
      48.             e.printStackTrace();
      49.         }
      50.  
      51.     }
      52.  
      53. }
      分享到:
      评论

      相关推荐

        Java简单上传图片实例

        本实例以"Java简单上传图片实例"为主题,利用Struts框架实现了一个基本的图片上传功能。Struts是一个开源的MVC框架,它帮助开发者构建基于Java Servlet的Web应用程序。 首先,我们关注的是Struts配置。在`struts....

        commons-fileupload 文件上传 图片上传 demo

        至于文件列表中提到的"Roger",这可能是实际的项目文件或代码示例,具体内容没有给出,但根据标题“demo”可以推测,这可能是一个演示如何使用`commons-fileupload`进行图片上传的Java代码示例。 在实际应用中,...

        fileupload使用方法demo

        Apache Commons FileUpload是一个Java库,专门用于处理HTTP请求中的文件上传功能。在Web开发中,尤其是在用户需要...通过学习和实践这个"fileupload使用方法demo",你将能够熟练地在Java Web应用中实现文件上传功能。

        java中common-fileupload 上传文件demo

        下面,我们将深入探讨如何使用`Commons FileUpload`库在Java中实现文件上传功能,并基于提供的"文件上传demo"进行分析。 首先,我们需要添加`Commons FileUpload`的依赖到我们的项目中。如果你使用的是Maven,可以...

        java上传下载实例

        描述中提到的不同方式的上传例子可能包括了使用Commons FileUpload库,这是一个流行的Java库,专门处理multipart/form-data类型的请求,常用于文件上传。使用这个库,我们需要创建一个`FileItemFactory`,然后用它...

        java 图片上传系统 common-fileUpload

        总的来说,这个基于`common-fileUpload`的Java图片上传系统提供了一个强大且可配置的解决方案,可以满足大多数Web应用的图片上传需求。通过深入理解其工作原理和配置选项,开发者可以轻松地将其集成到自己的项目中,...

        java文件上传demo

        `java文件上传demo`是一个基于Apache Commons FileUpload和Commons IO库实现的示例项目,它为开发者提供了清晰的代码实例,以便理解如何在Java中处理文件上传操作。 Apache Commons FileUpload库是一个专门用于处理...

        云应用开发 ——Google App Engine & Google Web Toolkit入门指南

        ### 云应用开发 ——Google App Engine & Google Web Toolkit入门指南 #### 第1章 应该了解下 ##### 1.1 云基本知识 云计算是一种通过互联网提供按需计算资源和服务的方式,包括网络、服务器、存储、应用程序和...

        Java(Servlet)上传文件的demo

        本示例"Java(Servlet)上传文件的demo"提供了一个简单的文件上传功能,适用于初学者理解和实践。以下是对这个demo的详细解析: 1. **Servlet基本概念**: Servlet是一个Java类,遵循Servlet API规范,它扩展了...

        文件上传实例-JAVA

        以下是关于这个"文件上传实例-JAVA"的详细解释和相关知识点。 1. **文件上传的基本原理**: 文件上传通常涉及客户端(浏览器)与服务器之间的交互。用户在Web表单中选择文件,表单提交后,文件数据被封装到HTTP...

        Java实现图片上传

        总结起来,Java实现图片上传涉及的关键技术有:文件操作(File类)、HTTP请求(Multipart编码)、服务器端文件处理(如Apache Commons FileUpload)、存储策略(文件系统或云存储)以及安全性与性能优化(如文件大小...

        fileUpload多图片上传demo

        "fileUpload多图片上传demo"是一个示例项目,它展示了如何实现用户选择并上传多张图片的功能。这个压缩包可能包含了一个完整的前端界面、后端处理逻辑以及可能的数据存储策略。下面将详细解析这个知识点的各个方面。...

        commons-fileupload文件上传实例

        在Java Web开发中,文件上传是一项常见的功能,用于允许用户上传图片、文档等资源到服务器。Apache Commons FileUpload是Java中处理文件上传的一个强大库,它简化了这一过程。本教程将详细介绍如何利用commons-...

        java文件上传 FileUpload

        在Java编程中,文件上传是一项常见的任务,尤其是在Web应用程序中,用户可能需要上传图片、文档等数据。Apache Commons FileUpload库是Java实现文件上传功能的一个强大工具,它为处理HTTP多部分请求提供了便利。本篇...

        jquery fileupload上传百分比 JAVA版解决中文乱码

        本篇将详细探讨如何在Java环境下使用jQuery File Upload实现文件上传并处理中文文件名的乱码问题。 首先,jQuery File Upload的核心原理是利用HTML5的File API进行异步文件上传。它通过AJAX请求将文件分块上传到...

        Fileupload测试demo

        综上所述,"Fileupload测试demo"是一个学习和实践文件上传功能的实例,涵盖了从HTML表单到服务器端处理的整个流程,使用了Apache Commons FileUpload库简化了处理工作。对于初学者来说,这是一个很好的起点,可以...

        .NET 文件上传文件控件(FileUpload)使用实例

        本文将通过一个简单的图片上传程序,来演示 FileUpload 控件的使用实例。 在 ASP.NET 中使用 FileUpload 控件非常简单,只需要将其拖曳到 ASPX 文件中,然后设置其 ID 和 Runat 属性即可。在本例中,我们使用了一个...

        commons-fileupload实现jsp上传实例(源码)

        "commons-fileupload实现jsp上传实例(源码)" 这个标题表明了我们讨论的主题是关于使用Apache Commons FileUpload库在JavaServer Pages (JSP)中实现文件上传的功能,并且提供了源代码作为参考。Apache Commons ...

        fileupload上传demo

        "fileupload上传demo"是一个典型的示例,用于展示如何实现用户通过Web界面上传文件到服务器的过程。在这个场景下,我们将探讨相关的知识点,包括前端文件选择、文件读取、HTTP请求、后端接收以及文件存储。 1. 前端...

      Global site tag (gtag.js) - Google Analytics