相关疑难解决方法(0)

getResourceAsStream()vs FileInputStream

我试图在webapp中加载一个文件,FileNotFound当我使用时我得到了一个例外FileInputStream.但是,使用相同的路径,我能够在我这样做时加载文件getResourceAsStream().这两种方法之间有什么区别,为什么一种方法有效而另一方方法无效?

java file-io web-applications fileinputstream

168
推荐指数
5
解决办法
19万
查看次数

在Java Web应用程序中从应用程序服务器外部提供静态数据的最简单方法

我有一个在Tomcat上运行的Java Web应用程序.我想加载静态图像,这些图像将在Web UI和应用程序生成的PDF文件中显示.此外,还将通过Web UI上传添加和保存新图像.

通过将静态数据存储在Web容器中但从Web容器外部存储和加载它们来解决这个问题并不是一个问题.

我不想在此时使用像Apache这样的单独的Web服务器来提供静态数据.我也不喜欢将图像以二进制形式存储在数据库中.

我已经看到一些建议,比如将图像目录作为指向Web容器外部目录的符号链接,但这种方法是否适用于Windows和*nix环境?

有人建议编写一个过滤器或servlet来处理图像服务,但这些建议非常模糊和高级别,没有指向如何实现这一目标的更详细信息.

tomcat servlets static-content java-ee

129
推荐指数
5
解决办法
14万
查看次数

建议在servlet应用程序中保存上载文件的方法

在这里读到,无论如何都不应该将文件保存在服务器中,因为它不是可移植的,事务性的并且需要外部参数.但是,鉴于我需要一个针对tomcat(7)的tmp解决方案,并且我对服务器机器有(相对)控制,我想知道:

  • 保存文件的最佳位置是什么?我应该保存/WEB-INF/uploads(建议不要在这里)或某个地方$CATALINA_BASE(见这里)或......?JavaEE 6教程从用户获取路径(:wtf :).注意:该文件不应以任何方式下载.

  • 我应该建立一个配置参数详见这里?我很欣赏一些代码(我宁愿给它一个相对路径 - 所以它至少是Tomcat可移植的) - Part.write()看起来很有希望 - 但显然需要一个绝对的路径

  • 我对这种方法与数据库/ JCR存储库的缺点的阐述感兴趣

不幸的是 ,@ BalusC 的FileServlet专注于下载文件,而他在上传文件时的答案会跳过保存文件的位置.

容易转换为使用DB或JCR实现(如长耳兔)的解决方案将是优选的.

tomcat servlets file-upload servlet-3.0

117
推荐指数
2
解决办法
13万
查看次数

我如何在java webapp中保存和检索服务器上的图像

这里有关于图像的另一个问题(这似乎比我初步预测的更困难)我正在使用JSF 2.0(apache myFaces)开发一个java Web应用程序,我希望这个应用程序能够将图片上传到目的地它将要运行的服务器.我有运行mySQL Db的Windows r2 2008服务器,但我不想将数据存储在数据库中,我宁愿将其存储在服务器中的某个位置,然后将该路径保存为数据库中的字符串.

我被告知这是最好的方法,但我似乎无法找到如何将其保存在服务器上的示例.我在Apache tomcat Server上运行应用程序作为WAR文件.所以我不知道是否必须将文件保存到服务器驱动器上的路径(即C:\ images)或项目本身的特殊文件夹(在java,html文件中),任何帮助都非常感谢.我完全迷失了,并且整天都陷入困境,试图解决这个问题.

我用来将图像上传到java类的代码是这样的(由CodyS提供):

InputStream is = uploadedFile.getInputStream();  
byte[] buffer = new byte[(int) uploadedFile.getSize()];
is.read(buffer); 
File f = new File("C:\\temp\\" + this.patient.getPk() + ".jpeg");   
f.createNewFile();  
FileOutputStream fos = new FileOutputStream(f);  
fos.write(buffer);  //This is where I write it to the C Drive
fos.close();
is.close(); 
Run Code Online (Sandbox Code Playgroud)

而不是把它写到我的C盘我将在服务器上运行它,但我应该在哪里存储图像以便以后检索并显示在xhtml文件中?我希望我能清楚我需要什么,如果我不是,请告诉我,我会尝试以另一种方式解释.

java mysql tomcat image jsf-2

10
推荐指数
1
解决办法
2万
查看次数

上传文件的最佳位置

处理一些导入过程,我需要先在服务器上的某个位置上传文件,然后我需要从这个位置选择文件将其导入系统.我只是想知道什么是存储上传文件的最佳位置.我没什么选择

1)可以在tomcat的根目录中创建一个文件夹,然后将上传文件放在那里,稍后可以为导入过程选择文件.

File dir = new File(System.getProperty("catalina.base"), "uploads");
Run Code Online (Sandbox Code Playgroud)

这是一个很好的选择,天气上面的代码将在所有环境中同样有效

2)我可以在我的应用程序下创建一个uploads文件夹,可以访问它进行文件上传,然后使用以下代码进行导入

ServletActionContext.getServletContext().getRealPath("uploads");
Run Code Online (Sandbox Code Playgroud)

你需要提出宝贵的建议,我需要做的唯一工作就是上传文件并运行上传文件的导入过程,一旦导入成功,就可以将文件从这个文件夹中删除到其他类似处理过的文件等.

java tomcat servlets

7
推荐指数
1
解决办法
1万
查看次数

PrimeFaces fileDownload不起作用

我无法得到primeFaces的<p:filedownload工作.我成功使用自定义下载bean下载文件.似乎issu与primefaces文件下载ActionListener有关,但我没有看到如何.有人有线索吗?谢谢.

这是我的豆子:

@ManagedBean(name="fileDownloadBean")
@SessionScoped
public class FileDownloadBean implements Serializable {

    private StreamedContent file;

    public StreamedContent getFile() {
        return file;
    }

    public void setFile(StreamedContent file) {
        this.file = file;
    }

    /** Creates a new instance of FileDownloadBean */
    public FileDownloadBean() {
        InputStream stream = this.getClass().getResourceAsStream("sessionlog.csv");
        file = new DefaultStreamedContent(stream, "application/csv", "sessionlog.csv");

    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的观看代码:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.prime.com.tr/ui" 
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:o="http://openfaces.org/"
                template="./../template.xhtml">

    <ui:define name="title">
        #{bundle.Log}
    </ui:define>

    <ui:define …
Run Code Online (Sandbox Code Playgroud)

jsf download primefaces java-ee-5

7
推荐指数
1
解决办法
2万
查看次数