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
-
public class PhotoDao {
-
private static PhotoDao _instance = null;
-
-
public static PhotoDao getInstance() {
-
if (_instance == null) {
-
_instance = new PhotoDao();
-
}
-
return _instance;
-
}
-
-
//
-
public String insertPhoto(Photo photo) {
-
PersistenceManager pm = PMF.get().getPersistenceManager();
-
try {
-
pm.makePersistent(photo);
-
} finally {
-
pm.close();
-
}
-
return photo.getId().toString();
-
}
-
}
-
-
public Photo getById(Long id) {
-
PersistenceManager pm = PMF.get().getPersistenceManager();
-
Query query = pm.newQuery(Photo.class);
-
query.setFilter("id == idParam");
-
query.declareParameters("Long idParam");
-
List photo = null;
-
try {
-
photo = (List) query.execute(id);
-
if (photo.isEmpty()){
-
return null;
-
}else{
-
return photo.get(0);
-
}
-
-
} finally {
-
query.closeAll();
-
}
-
}
The PhotoServlet, I used Apache Commons FileUpload: commons-fileupload.
PhotoServlet.java
-
import org.apache.commons.fileupload.FileItemIterator;
-
import org.apache.commons.fileupload.FileItemStream;
-
import org.apache.commons.fileupload.FileUploadException;
-
import org.apache.commons.fileupload.servlet.ServletFileUpload;
-
import org.apache.commons.io.IOUtils;
-
-
public class PhotoServlet extends HttpServlet {
-
/*display image*/
-
public void doGet(HttpServletRequest req, HttpServletResponse
resp)
-
throws IOException {
-
String id = req.getParameter("id");
-
Photo photo =
PhotoDao.getInstance().getById(Long.parseLong(id));
-
Blob b = photo.getPhoto();
-
resp.setContentType("image/jpeg;charset=utf-8");
-
resp.getOutputStream().write(b.getBytes());
-
resp.getOutputStream().close();
-
}
-
/*upload image and add to datastore*/
-
public void doPost(HttpServletRequest req, HttpServletResponse
resp)
-
throws IOException {
-
ServletFileUpload upload = new ServletFileUpload();
-
FileItemIterator iterator = null;
-
try {
-
iterator = upload.getItemIterator(req);
-
} catch (FileUploadException e) {
-
e.printStackTrace();
-
}
-
try {
-
while (iterator.hasNext()) {
-
FileItemStream item = iterator.next();
-
InputStream stream = item.openStream();
-
if (item.isFormField()) {
-
// Handle form field
-
} else {
-
Blob bImg = new Blob(IOUtils.toByteArray(stream));
-
Photo photo = new Photo(bImg);
-
String pid =
PhotoDao.getInstance().insertPhoto(photo);
-
req.setAttribute("Pid", pid);
-
try {
-
req.getRequestDispatcher("photo.jsp").forward(req,
resp);
-
} catch (ServletException e) {
-
e.printStackTrace();
-
}
-
}
-
-
}
-
} catch (FileUploadException e) {
-
e.printStackTrace();
-
}
-
-
}
-
-
}
分享到:
相关推荐
本实例以"Java简单上传图片实例"为主题,利用Struts框架实现了一个基本的图片上传功能。Struts是一个开源的MVC框架,它帮助开发者构建基于Java Servlet的Web应用程序。 首先,我们关注的是Struts配置。在`struts....
至于文件列表中提到的"Roger",这可能是实际的项目文件或代码示例,具体内容没有给出,但根据标题“demo”可以推测,这可能是一个演示如何使用`commons-fileupload`进行图片上传的Java代码示例。 在实际应用中,...
Apache Commons FileUpload是一个Java库,专门用于处理HTTP请求中的文件上传功能。在Web开发中,尤其是在用户需要...通过学习和实践这个"fileupload使用方法demo",你将能够熟练地在Java Web应用中实现文件上传功能。
下面,我们将深入探讨如何使用`Commons FileUpload`库在Java中实现文件上传功能,并基于提供的"文件上传demo"进行分析。 首先,我们需要添加`Commons FileUpload`的依赖到我们的项目中。如果你使用的是Maven,可以...
描述中提到的不同方式的上传例子可能包括了使用Commons FileUpload库,这是一个流行的Java库,专门处理multipart/form-data类型的请求,常用于文件上传。使用这个库,我们需要创建一个`FileItemFactory`,然后用它...
总的来说,这个基于`common-fileUpload`的Java图片上传系统提供了一个强大且可配置的解决方案,可以满足大多数Web应用的图片上传需求。通过深入理解其工作原理和配置选项,开发者可以轻松地将其集成到自己的项目中,...
`java文件上传demo`是一个基于Apache Commons FileUpload和Commons IO库实现的示例项目,它为开发者提供了清晰的代码实例,以便理解如何在Java中处理文件上传操作。 Apache Commons FileUpload库是一个专门用于处理...
### 云应用开发 ——Google App Engine & Google Web Toolkit入门指南 #### 第1章 应该了解下 ##### 1.1 云基本知识 云计算是一种通过互联网提供按需计算资源和服务的方式,包括网络、服务器、存储、应用程序和...
本示例"Java(Servlet)上传文件的demo"提供了一个简单的文件上传功能,适用于初学者理解和实践。以下是对这个demo的详细解析: 1. **Servlet基本概念**: Servlet是一个Java类,遵循Servlet API规范,它扩展了...
以下是关于这个"文件上传实例-JAVA"的详细解释和相关知识点。 1. **文件上传的基本原理**: 文件上传通常涉及客户端(浏览器)与服务器之间的交互。用户在Web表单中选择文件,表单提交后,文件数据被封装到HTTP...
总结起来,Java实现图片上传涉及的关键技术有:文件操作(File类)、HTTP请求(Multipart编码)、服务器端文件处理(如Apache Commons FileUpload)、存储策略(文件系统或云存储)以及安全性与性能优化(如文件大小...
"fileUpload多图片上传demo"是一个示例项目,它展示了如何实现用户选择并上传多张图片的功能。这个压缩包可能包含了一个完整的前端界面、后端处理逻辑以及可能的数据存储策略。下面将详细解析这个知识点的各个方面。...
在Java Web开发中,文件上传是一项常见的功能,用于允许用户上传图片、文档等资源到服务器。Apache Commons FileUpload是Java中处理文件上传的一个强大库,它简化了这一过程。本教程将详细介绍如何利用commons-...
在Java编程中,文件上传是一项常见的任务,尤其是在Web应用程序中,用户可能需要上传图片、文档等数据。Apache Commons FileUpload库是Java实现文件上传功能的一个强大工具,它为处理HTTP多部分请求提供了便利。本篇...
本篇将详细探讨如何在Java环境下使用jQuery File Upload实现文件上传并处理中文文件名的乱码问题。 首先,jQuery File Upload的核心原理是利用HTML5的File API进行异步文件上传。它通过AJAX请求将文件分块上传到...
综上所述,"Fileupload测试demo"是一个学习和实践文件上传功能的实例,涵盖了从HTML表单到服务器端处理的整个流程,使用了Apache Commons FileUpload库简化了处理工作。对于初学者来说,这是一个很好的起点,可以...
本文将通过一个简单的图片上传程序,来演示 FileUpload 控件的使用实例。 在 ASP.NET 中使用 FileUpload 控件非常简单,只需要将其拖曳到 ASPX 文件中,然后设置其 ID 和 Runat 属性即可。在本例中,我们使用了一个...
"commons-fileupload实现jsp上传实例(源码)" 这个标题表明了我们讨论的主题是关于使用Apache Commons FileUpload库在JavaServer Pages (JSP)中实现文件上传的功能,并且提供了源代码作为参考。Apache Commons ...
在Java Web开发中,图片上传是一项常见的功能,用于允许用户上传他们的图片文件到服务器,然后在网站上展示。本教程将深入讲解如何使用Struts2框架和Apache Commons FileUpload库来实现这一功能。 首先,我们需要...