我正在上传一个文件,我想提供一个相对路径,因为该程序应该在linux和windows环境下工作.
这就是我用来上传的内容
realPath = getServletContext().getRealPath(/files);
destinationDir = new File(realPath);
if(!item.isFormField())
{
File file = new File(destinationDir,item.getName());
item.write(file);
}
Run Code Online (Sandbox Code Playgroud)
在这里直接提供相对路径的任何其他方法
File file = new File(destinationDir,item.getName());
Run Code Online (Sandbox Code Playgroud) 我有一个带有上传表单的Web应用程序,用户可以上传文件.
我想将文件存储在文件夹'files'中.我希望这个文件夹直接放在webapp-root下.
使用struts2,在我的uploadFileAction中,我可以轻松设置此路径 String uploadDir = ServletActionContext.getServletContext().getRealPath("/files")+ "/";
但是当我试图检索文件时,显然我尝试访问该文件的bean无法访问getServletContext(),因此会抛出nullpointergetRealPath
现在我想弄清楚我应该如何处理这个问题.我听说过弹簧资源是要走的路,但是我找不到任何相关的例子.
有一个简单的方法来获得我的路径?我只想将rootpath发送到我的webapp.没有更多的东西......
我从后台bean访问外部文件时遇到问题.我想做的是使用ttf文件,以便通过iText库使用该字体.当我通过Netbeans 7.2运行我的应用程序时,下面的代码工作正常:
private static String fontPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("arialuni.ttf");
Run Code Online (Sandbox Code Playgroud)
但是当我通过Oracle Weblogic 11g控制台手动部署我的ear文件时,找不到ttf文件,我得到NullPointerException.
我已经尝试了几种方法让它工作但没有机会.如果有人可以帮助我,我会非常感激.
问候
您好,我正在使用 PrimeFaces 5/JSF 2 和 tomcat!
有人可以向我展示或给我一个关于如何在应用程序服务器上在有限时间内存储 pdf 的想法吗(我正在使用 tomcat),然后下载它(如果这是用户请求的)。此功能与发票相关,因此我无法使用 dataExporter。
更具体地说,我几乎实现了这个,但我对此不太确定。一个大问题是......我在哪里存储生成的文件?我浏览了一下,有人说将文件保存在webApp或tomcat目录中是不行的。我还有什么其他解决方案?
我在JBoss中部署了servlet.我想根据客户端输入将数据读/写到文本文件中.该文本文件应放在JBoss目录结构中的哪个位置?
我试图从java获取我的项目的当前目录.我使用以下代码行来获取路径详细信息.
类型1:
File directory = new File (".");
try {
System.out.println ("Current directory's canonical path: "
+ directory.getCanonicalPath());
System.out.println ("Current directory's absolute path: "
+ directory.getAbsolutePath());
}catch(Exception e) {
System.out.println("Exceptione is ="+e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
类型2:
String currentDir = System.getProperty("user.dir");
System.out.println("Current dir using System:" +currentDir);
Run Code Online (Sandbox Code Playgroud)
从主类执行上面的代码我得到项目目录.当我从服务器端执行时,得到"当前dir使用System:D:\ Apache Tomcat 6.0.16\bin".但我的项目位于D:\Apache Tomcat 6.0.16\wepapps\SampleStructs.
请给我任何建议,并帮助我解决这个问题.
我使用 JSF 2.2 和 Primefaces 5.3。我想将上传的文件保存在磁盘上。下面你可以看到我是如何尝试做到这一点的。当我按下一个Send按钮时,我得到一个java.nio.file.NoSuchFileException异常(在我的帖子末尾我还放了一个完整的堆栈跟踪):
错误 [stderr](默认任务 24)java.nio.file.NoSuchFileException: [PATH]\Wildfly_10\WILDFLY_HOME\standalone\tmp\MasterProject.war\undertow1357918758070690245upload
当我跟踪堆栈跟踪时,我看到异常是由这一行引起的(我认为是这样):
try(InputStream input = uploadFile.getInputstream()){
这对我来说很奇怪。我可以获取上传文件的名称 (by uploadFile.getFileName()),但我无法获取文件的大小 (by uploadFile.getSize()),也无法获取InputStream(by uploadFile.getInputstream())。在这两种情况下,我都得到了NoSuchFileException例外。
附加信息:我必须上传大文件(即 200 MB 或更多)。当然,当我上传小文件时,我得到了同样的例外。
您知道为什么我会遇到此异常以及如何解决此问题吗?
这是我上传文件的页面的一部分:
<h:form>
<p:growl id="messages" showDetail="true" />
<p:panelGrid id="panel" columns="2" styleClass="ui-noborder" columnClasses="rightalign,leftalign">
<p:outputLabel for="file" value="File:" />
<p:fileUpload id="file" fileLimit="1"
fileUploadListener="#{dataController.handleFileUpload}"
mode="advanced" dragDropSupport="true" sizeLimit="1000000000"
uploadLabel="Upload" cancelLabel="Delete" allowTypes="/(\.|\/)(csv|binetflow)$/" />
<p:commandButton id="buttonSend" value="Send"
action="#{dataController.send()}" update="messages"/>
</p:panelGrid>
</h:form>
Run Code Online (Sandbox Code Playgroud)
这是 CDI bean,它是上述页面的控制器:
@Named
@ViewScoped
public class DataController implements Serializable …Run Code Online (Sandbox Code Playgroud) 我想知道如何使用dropzone.js与JSF上传文件.在文档(http://www.dropzonejs.com/#usage)中,它说使用dropzone就像使用:
<input type="file" name="file" />
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在JSF中实现服务器端部分来获取文件并将其存储在磁盘中.
我想知道,如何在Spring MVC项目中将文件写入资源文件夹。我在web-dispatcher-servlet.xmlas中定义了资源路径
<mvc:resources mapping="/resources/**" location="/resources/" />
我阅读了有关如何从资源文件夹读取文件的示例。但是我想将文件写入资源文件夹。我试过了
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("file/test.xml").getFile());
if (file.createNewFile()) {
System.out.println("File is created!");
} else {
System.out.println("File already exists.");
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了
Request processing failed; nested exception is java.lang.NullPointerException
我想通过使用请求方法 getRealPath() 在 java 中获取文件的真实路径,但现在不推荐使用它我想要一个替代它我尝试获取 servletcontext 但它没有返回整个路径
在 jsp 页面中,当我使用 application.getRealPath("/") 时,它给出的整个路径为 D:/.....
但是在 java servlet 代码中,我没有让这个方法工作,所以我想要一个完美的 httprequest 方法,它将返回应用程序的整个路径。
如果可能的话,请给我一个完美的方法和例子
使用我公司选择的云存储API并开始使用JSF 2.2.尝试构建一个简单的图像上传Web应用程序,它在我使用Eclipse本地运行时工作.
这是代码:.xhtml页面
<h:form id="form" enctype="multipart/form-data" prependId="false">
Select id Photo: <h:inputFile id="file" value="#{customerEntity.uploadedFile}"/>
<h:commandButton value="Query Cloud"
action="#{customerEntity.addActionController}"/>
</h:form>
Run Code Online (Sandbox Code Playgroud)
customerEntity.java代码:
private Part uploadedFile;
private String fileURI;
Run Code Online (Sandbox Code Playgroud)
在本地计算机上,从Part对象uploadedFile中提取文件名的代码生成正确的文件定位器(例如c:\ pictures\mypix.jpg),以便在我的机器上进行本地访问.
但是,当我加载到运行在云vm中的tomcat 7时,应用程序在"try"块中失败并带有FileNotFound:
File source = new File(this.fileURI);
try {
cloud.upload(new FileInputStream(source), source.length());
Run Code Online (Sandbox Code Playgroud)
我的调试语句显示它使用的是我本地电脑上的文件定位器,它显然不存在于服务器上.我无法弄清楚如何将本地文件数据流式传输到服务器上运行的代码.
作为一个轻微的jsf新手,我确信它是显而易见的,但无法弄明白或通过我见过的其他帖子解决.
任何指导将不胜感激!
当我正在使用的第三方库尝试访问文件时,我收到"错误打开...文件...(没有这样的文件或目录)",即使我知道该文件在WAR中.我已经尝试了打包(.war)和"爆炸"(目录)部署,文件肯定在那里.我也尝试过设置完全权限.它是在Unix(Ubuntu)上.文件是war/dict/index.sense,错误是"dict/index.sense(没有这样的文件或目录)".
当它作为来自Eclipse的GWT应用程序在托管模式下运行时,它在我的Windows计算机上运行正常,而不是在我将其传输到Unix机器进行部署时.
我的问题是:有没有人经历过这个和/或我应该考虑相对路径的差异,即在战争中相对文件访问的根路径是什么?
我正在尝试使用h:inputFile标记上传图像文件并将其写入磁盘.
我的JSF代码:
<h:form id="fileUploadForm" enctype='multipart/form-data' prependId="false">
<h:inputFile value="#{solicitacaoManagedBean.imagemCarregada}" />
<br />
<h:commandButton styleClass="btn btn-primary " value="Enviar" action="#{solicitacaoManagedBean.enviarImagem}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
我的ManagedBean:
@Named(value = "solicitacaoManagedBean")
@SessionScoped
@MultipartConfig(location = "/home/rogerio/tmp/")
public class SolicitacaoManagedBean implements Serializable {
private Part imagemCarregada;
Run Code Online (Sandbox Code Playgroud)
(......)
public void enviarImagem() throws IOException {
try {
imagemCarregada.write("teste.jpg");
} catch (IOException ioe) {
System.out.println("Erro ao escrever: " + ioe.getLocalizedMessage());
}
}
}
Run Code Online (Sandbox Code Playgroud)
据推测,方法write将项目上传到磁盘,IOException也不会被抛出/捕获.