相关疑难解决方法(0)

如何在基于servlet的Web应用程序中临时保存生成的文件

我正在尝试生成一个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我的服务器上返回.有人可以帮忙吗?

servlets relative-path realpath

15
推荐指数
1
解决办法
9940
查看次数

在哪里/如何在spring mvc中存储图像/文件

我在Spring MVC和Hibernate的电子商务应用程序中工作,我需要存储大量图像.
我想将图像保存在文件系统上(在服务器本身上以减少数据库的负载).我怀疑的是我应该在项目中保存图像的确切位置?

正如我在一些博客中所提到的那样,图片不应该保存在文件夹中,war因为它可能会在下一个版本的应用程序发布时导致问题(备份所有图像并再次手动放置)
请让我知道我需要在哪里保存图像以及如何在我们的java类中获取该文件夹路径.

image spring-mvc

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

如何使用JSF 2.2 <h:inputFile>上传文件?保存的文件在哪里?

我希望能够在我的JSF2.2 Web应用程序中上传文件,所以我开始使用新<h:inputFile>组件.

我唯一的问题是,如何指定文件将保存在服务器中的位置?我想把它们当成java.io.File实例.这必须在支持bean中实现,但我不清楚如何理解.

jsf file-upload multipartform-data jsf-2.2

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

如何通过Java EE Web应用程序在服务器(Web容器)上存储文件?

我开发了一个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.

那么,有没有其他方法可以将文件存储在那些正在返回的服务器nullgetServlet().getServletContext().getRealPath("")

java tomcat servlets file-storage java-ee

11
推荐指数
2
解决办法
4万
查看次数

如何使用jsp上传服务器文件夹上的文件

我正在尝试使用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)

java upload jsp servlets image

11
推荐指数
2
解决办法
19万
查看次数

如何将文件写入应用程序的资源/图像文件夹?

我想上传一个图像并将其存储在服务器上,然后用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)

jsf file-upload glassfish jsf-2.2

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

从java类文件中获取apache webcontents文件夹的绝对路径

需要在动态Web应用程序内的java类文件中获取绝对路径...

  • 实际上我需要获得apache webapps文件夹的路径...部署webapps的位置

  • 例如/apache-root/webapps/my-deployed-app/WebContent/images/imagetosave.jpg

  • 需要在java类文件中获取它,而不是在jsp页面或任何视图页面上...

有任何想法吗?

java jsp file absolute-path

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

FileNotFoundException(是一个目录)

我目前正在尝试上传多个文件,并且文件正在上传到目标目录中.但在日志中它给了我这个错误:

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)

java file-upload multipartform-data java-ee

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

上传文件的最佳位置

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

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万
查看次数

将文件保存在服务器上,java web应用程序

从我的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文件夹处于同一级别.如果我想将文件保存在服务器存储上并将文件的路径保存在数据库中,我应该在哪里保存文件?谢谢

web-applications java-ee vaadin

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