我正在尝试生成一个XML文件并将其保存/WEB-INF/pages/.
下面是我使用相对路径的代码:
File folder = new File("src/main/webapp/WEB-INF/pages/");
StreamResult result = new StreamResult(new File(folder, fileName));
Run Code Online (Sandbox Code Playgroud)
在本地计算机上作为应用程序运行时,它工作正常 (C:\Users\userName\Desktop\Source\MyProject\src\main\webapp\WEB-INF\pages\myFile.xml).
但是当在服务器机器上部署和运行时,它会引发以下异常:
javax.xml.transform.TransformerException:java.io.FileNotFoundException C:\ project\eclipse-jee-luna-R-win32-x86_64\eclipse\src\main\webapp\WEB INF\pages\myFile.xml
我也尝试getServletContext().getRealPath()了,但它正在null我的服务器上返回.有人可以帮忙吗?
我在Spring MVC和Hibernate的电子商务应用程序中工作,我需要存储大量图像.
我想将图像保存在文件系统上(在服务器本身上以减少数据库的负载).我怀疑的是我应该在项目中保存图像的确切位置?
正如我在一些博客中所提到的那样,图片不应该保存在文件夹中,war因为它可能会在下一个版本的应用程序发布时导致问题(备份所有图像并再次手动放置)
请让我知道我需要在哪里保存图像以及如何在我们的java类中获取该文件夹路径.
我希望能够在我的JSF2.2 Web应用程序中上传文件,所以我开始使用新<h:inputFile>组件.
我唯一的问题是,如何指定文件将保存在服务器中的位置?我想把它们当成java.io.File实例.这必须在支持bean中实现,但我不清楚如何理解.
我开发了一个Java EE Web应用程序.该应用程序允许用户在浏览器的帮助下上传文件.一旦用户上传了他的文件,该应用程序首先将上载的文件存储在服务器上(运行它),然后对其进行处理.
目前,我将文件存储在服务器上,如下所示:
try {
// formFile represents the uploaded file
FormFile formFile = programForm.getTheFile();
String path = getServlet().getServletContext().getRealPath("") + "/"
+ formFile.getFileName();
System.out.println(path);
file = new File(path);
outputStream = new FileOutputStream(file);
outputStream.write(formFile.getFileData());
}
Run Code Online (Sandbox Code Playgroud)
其中,formFile代表上传的文件.
现在,问题是它在某些服务器上正常运行但在某些服务器上getServlet().getServletContext().getRealPath("")正在返回,null因此我得到的最终路径是null/filename文件不存储在服务器上.
当我检查API ServletContext.getRealPath()方法时,我发现了以下内容:
public java.lang.String getRealPath(java.lang.String path)返回包含给定虚拟路径的实际路径的String.例如,路径
"/index.html"返回服务器文件系统上的绝对文件路径将由请求提供服务"http://host/contextPath/index.html",其中contextPath是此ServletContext的上下文路径.返回的实际路径将采用适合运行servlet容器的计算机和操作系统的形式,包括正确的路径分隔符.如果servlet容器由于任何原因(例如,当从.war存档提供内容时)无法将虚拟路径转换为实际路径,则此方法返回null.
那么,有没有其他方法可以将文件存储在那些正在返回的服务器null上getServlet().getServletContext().getRealPath("")
我正在尝试使用servlet/jsp上传一些位于我的服务器上的文件夹上的图像.
下面是我的代码,它在我的本地机器上工作:
import java.io.*;
import java.util.*;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.output.*;
public class UploadServlet extends HttpServlet {
private boolean isMultipart;
private String filePath;
private int maxFileSize = 1000 * 1024;
private int maxMemSize = 1000 * 1024;
private File file ;
public void init( ){
// Get the file location where it would be stored.
filePath =
getServletContext().getInitParameter("file-upload");
}
public void doPost(HttpServletRequest request,
HttpServletResponse response) …Run Code Online (Sandbox Code Playgroud) 我想上传一个图像并将其存储在服务器上,然后用h:graphicImage显示它?我想将它存储在应用程序的"资源/图像"中.我正在使用glassfish 4.现在,文件转到"domain1\generated\jsp\FileUpload".谢谢
我的表格
<h:form id="form" enctype="multipart/form-data">
<h:messages/>
<h:panelGrid columns="2">
<h:outputText value="File:"/>
<h:inputFile id="file" value="#{uploadPage.uploadedFile}"/>
</h:panelGrid>
<br/><br/>
<h:commandButton value="Upload File" action="#{uploadPage.uploadFile}"/>
</h:form>
Run Code Online (Sandbox Code Playgroud)
我的豆子
@Named
@ViewScoped
public class UploadPage {
private Part uploadedFile;
public void uploadFile(){
File file = File.createTempFile("somefilename-", ".jpg", new File("C:\\var\\webapp\\images"));
uploadedFile.write(file.getAbsolutePath());
}
}
Run Code Online (Sandbox Code Playgroud) 需要在动态Web应用程序内的java类文件中获取绝对路径...
实际上我需要获得apache webapps文件夹的路径...部署webapps的位置
例如/apache-root/webapps/my-deployed-app/WebContent/images/imagetosave.jpg
需要在java类文件中获取它,而不是在jsp页面或任何视图页面上...
有任何想法吗?
我目前正在尝试上传多个文件,并且文件正在上传到目标目录中.但在日志中它给了我这个错误:
java.io.FileNotFoundException: /home/sandeep/java_proj/jee_tut/files (Is a directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
at com.jee.controller.FileProcessing.uploadFiles(FileProcessing.java:35)
at com.jee.controller.View.doPost(View.java:48)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
这是我上传文件的代码:
final String UPLOAD_DIR="files";
String applicationPath="/home/sandeep/java_proj/jee_tut";
String uploadDirPath= applicationPath + File.separator + UPLOAD_DIR;
try{
File fileDir=new File(uploadDirPath);
if(!fileDir.exists()){
fileDir.mkdirs(); …Run Code Online (Sandbox Code Playgroud) 处理一些导入过程,我需要先在服务器上的某个位置上传文件,然后我需要从这个位置选择文件将其导入系统.我只是想知道什么是存储上传文件的最佳位置.我没什么选择
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)
你需要提出宝贵的建议,我需要做的唯一工作就是上传文件并运行上传文件的导入过程,一旦导入成功,就可以将文件从这个文件夹中删除到其他类似处理过的文件等.
从我的Web应用程序(vaadin)我生成XML文件,并希望将这些文件存储在服务器上.我做了:
context.getHttpSession().getServletContext().getRealPath("/");
Run Code Online (Sandbox Code Playgroud)
我在tomcat上运行web应用程序并设法将文件保存到app下的app文件夹中
.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/my_app_folder/
Run Code Online (Sandbox Code Playgroud)
与META-INF,WEB-INF和VAADIN文件夹处于同一级别.如果我想将文件保存在服务器存储上并将文件的路径保存在数据库中,我应该在哪里保存文件?谢谢