首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过web服务和java项目将文件上载到postgresql数据库

通过web服务和java项目将文件上载到postgresql数据库
EN

Stack Overflow用户
提问于 2012-08-01 03:14:15
回答 3查看 1.1K关注 0票数 0

我正在尝试为我现有的java项目创建一个web服务。在我的java项目中,它能够在输入文件路径位置时处理文档,并将其插入到Postgresql数据库中。我创建了一个动态web项目(使用Tomcat6、RESTful web服务和jersey)。到目前为止,在web项目中,它在本地主机浏览器上有一个“选择文件”按钮,允许我选择一个文件。然后,我可以“提交”文档;但是现在它只是将文档上传到我的计算机上的不同位置。是否可以“选择文件”,然后将文件路径位置传递给我的java项目,该项目将处理该文件并将其插入到我的数据库中?如果是这样,我如何才能做到这一点呢?

非常感谢您的任何想法,感谢您的宝贵时间!

伊丽莎白

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-01 03:22:50

在Java servlet中,您需要实现doPost方法。在该方法中,使用来自Apache的Apache从http://commons.apache.org/fileupload/访问客户端上传的任何文件。

这里有一些东西可以让你入门:

代码语言:javascript
复制
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     DiskFileItemFactory disk = new DiskFileItemFactory();
     disk.setRespository(new File(TEMP_STORAGE));

     ServletFileUpload upload = new ServletFileUpload(disk);
     upload.setFileSizeMax(MAX_FILE_SIZE);
     List<FileItem> files = upload.parseRequest(request);

     //...get actual file with files.get(index).getInputStream() and process them....
     .....
}

但是在实现任何东西之前,请先阅读他们的文档

在客户端,有一个带有这种标记的表单:

代码语言:javascript
复制
<form enctype="multipart/form-data" ...
票数 1
EN

Stack Overflow用户

发布于 2012-08-01 03:20:53

您需要使用java servlet并查看下列库:从那里开始,http://commons.apache.org/fileupload/应该很简单。

票数 1
EN

Stack Overflow用户

发布于 2012-08-01 08:57:33

没有可靠的方法可以简单地将文件名从客户端发送到服务器,然后让服务器获取文件。相反,如果您希望您的软件比现有的Postgres命令行客户端更有用,则需要上传整个文件(即使客户端和服务器在同一台计算机上)。

如果您希望接受大文件,我强烈建议您使用流方法将文件内容直接从请求推送到数据库中。否则,您可能会对堆空间施加很大的压力(例如,如果您试图将整个文件加载到内存中),或者在写入磁盘以缓冲文件时遇到性能和同步问题。由于JDBC API能够将数据流式传输到数据库,因此最好的方法是将请求的InputStream直接连接到数据库。

请注意,大多数“文件上传”API(包括Apache commons-upload和Servlet 3.0文件上传功能)都被操纵为将文件上传到磁盘上的临时文件,然后在处理请求后将其删除。我不相信任何提供的流媒体功能,所以你可能不得不自己写。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11747342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档