@Thomas:

I have made a test using the request.getParts() API, as mentioned here:
https://docs.oracle.com/javaee/6/tutorial/doc/glrbb.html

The test upload application has been modified as:

-- web.xml
---
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_5_0.xsd";
         version="5.0">
</web-app>
---

-- index.html
---
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Upload Text File</title>
</head>
<body>
    <h1>Upload File</h1>
    <form action="upload.jsp" method="post" enctype="multipart/form-data">
        <input type="file" name="file" />
        <input type="submit" value="Upload" />
    </form>
</body>
</html>
---

-- upload.jsp
---
<%@ page import="java.io.*, java.util.*, javax.servlet.*, javax.servlet.http.*" 
%>
<%
  Part part = request.getPart("file");
  if (part != null) {
    InputStream stream = part.getInputStream();
    File file = new File("/tmp/" + part.getSubmittedFileName());
    FileOutputStream outputStream = new FileOutputStream(file);
    byte[] buffer = new byte[4096];
    int bytesRead = -1;
    while ((bytesRead = stream.read(buffer)) != -1) {
      outputStream.write(buffer, 0, bytesRead);
    }
    outputStream.close();
    stream.close();
  } else {
    out.println("No file uploaded.");
  }
%>
---

The @MultipartConfig is defined in the HTML file.

When deployed in Tomcat 10, I still get these errors:

---
org.apache.jasper.JasperException: An exception occurred processing 
[/upload.jsp] at line [3]

1: <%@ page import="java.io.*, java.util.*, javax.servlet.*, 
javax.servlet.http.*" %>
2: <%
3:   Part part = request.getPart("file");
4:   if (part != null) {
5:     InputStream stream = part.getInputStream();
6:     File file = new File("/tmp/" + part.getSubmittedFileName());
---

@Mark:

Refering to:
https://stackoverflow.com/questions/37965890/add-annotation-to-jsp

I do not upload a (image) file to the database, but on the server (/tmp).

Kind Regards

________________________________
From: Mark Thomas <ma...@apache.org>
Sent: Thursday, June 1, 2023 11:29 AM
To: users@tomcat.apache.org <users@tomcat.apache.org>
Subject: Re: Re-Cannot upload an image file from a deployed JSP page in Tomcat 
10

On 01/06/2023 10:18, Torsten Krah wrote:
> Am Donnerstag, dem 01.06.2023 um 08:52 +0000 schrieb Lauri:
>>> You mention a servlet part, but I do not use a servlet.
>>> All the code is contained in the JSP page.
>
> You need to divide that code in a JSP and in your upload servlet as you
> need to provide the @MultipartConfig on that servlet which handles your
> upload.
> Without that you will get:
>
> Unable to process parts as no multi-part configuration has been provided
>
> as an exception when accessing the request.getParts() API.
>
> The whole thing is all written there btw:
>
> https://docs.oracle.com/javaee/6/tutorial/doc/glrbb.html
>
> I don't know - maybe Mark does - if you can annotate a JSP page, had
> never seen it or read about that so my best guess is, you can't do that
> and you need to use a servlet + jsp unless you want to overwrite the
> JspServlet from Tomcat with a custom one which does have that
> annotation and handles the Jsp stuff.

You can do this via web.xml. See the following SO question for an
example specific to this question:

https://stackoverflow.com/questions/37965890/add-annotation-to-jsp

For some more general examples:

https://github.com/apache/tomcat/blob/main/test/webapp/WEB-INF/web.xml

Search for "<jsp-file>"

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to