This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/struts-site.git


The following commit(s) were added to refs/heads/asf-staging by this push:
     new 26bb2d7fc Updates stage by Jenkins
26bb2d7fc is described below

commit 26bb2d7fc6b5f3be3cc57b502913c6e5417f3092
Author: jenkins <bui...@apache.org>
AuthorDate: Sat Mar 16 15:52:09 2024 +0000

    Updates stage by Jenkins
---
 .../action-file-upload-interceptor.html            |   2 +-
 .../{file-upload.html => action-file-upload.html}  | 218 ++-------------------
 content/core-developers/file-upload.html           |  50 +----
 3 files changed, 23 insertions(+), 247 deletions(-)

diff --git a/content/core-developers/action-file-upload-interceptor.html 
b/content/core-developers/action-file-upload-interceptor.html
index 310dffc9d..7f8b86562 100644
--- a/content/core-developers/action-file-upload-interceptor.html
+++ b/content/core-developers/action-file-upload-interceptor.html
@@ -156,7 +156,7 @@
   <p>Available since Struts 6.4.0 as replacement for <a 
href="file-upload-interceptor">File Upload Interceptor</a></p>
 </blockquote>
 
-<p>See <a href="file-upload">this page</a> for more examples and advanced 
configuration.</p>
+<p>See <a href="action-file-upload">this page</a> for more examples and 
advanced configuration.</p>
 
 <p>Interceptor that is based off of <code class="language-plaintext 
highlighter-rouge">MultiPartRequestWrapper</code>, which is automatically 
applied for any request that includes 
 a file. If an action implements <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.action.UploadedFilesAware</code> 
interface, the interceptor will pass
diff --git a/content/core-developers/file-upload.html 
b/content/core-developers/action-file-upload.html
similarity index 61%
copy from content/core-developers/file-upload.html
copy to content/core-developers/action-file-upload.html
index b3e1253f5..f6e1d9988 100644
--- a/content/core-developers/file-upload.html
+++ b/content/core-developers/action-file-upload.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>File Upload</title>
+  <title>Action File Upload</title>
 
   <link 
href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic"
 rel="stylesheet" type="text/css">
   <link 
href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" 
rel="stylesheet">
@@ -146,23 +146,21 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/core-developers/file-upload.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
+    <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/core-developers/action-file-upload.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
     <a href="action-file-upload-interceptor" title="back to Action File Upload 
Interceptor"><< back to Action File Upload Interceptor</a>
     
-    <h1 class="no_toc" id="file-upload">File Upload</h1>
+    <h1 class="no_toc" id="action-file-upload">Action File Upload</h1>
 
 <ul id="markdown-toc">
   <li><a href="#dependencies" 
id="markdown-toc-dependencies">Dependencies</a></li>
   <li><a href="#basic-usage" id="markdown-toc-basic-usage">Basic Usage</a>    
<ul>
       <li><a href="#example-action-mapping" 
id="markdown-toc-example-action-mapping">Example action mapping:</a></li>
       <li><a href="#example-jsp-form-tags" 
id="markdown-toc-example-jsp-form-tags">Example JSP form tags:</a></li>
-      <li><a href="#example-action-class" 
id="markdown-toc-example-action-class">Example Action class:</a></li>
     </ul>
   </li>
   <li><a href="#uploading-multiple-files" 
id="markdown-toc-uploading-multiple-files">Uploading Multiple Files</a>    <ul>
       <li><a href="#uploading-multiple-files-using-arrays" 
id="markdown-toc-uploading-multiple-files-using-arrays">Uploading Multiple 
Files using Arrays</a></li>
-      <li><a href="#uploading-multiple-files-using-lists" 
id="markdown-toc-uploading-multiple-files-using-lists">Uploading Multiple Files 
using Lists</a></li>
     </ul>
   </li>
   <li><a href="#advanced-configuration" 
id="markdown-toc-advanced-configuration">Advanced Configuration</a>    <ul>
@@ -191,16 +189,11 @@ than the temporary directory and the directories that 
belong to your web applica
 <p>The Struts 2 framework leverages the Commons FileUpload library as a based 
library to support file upload in the framework.
 The library is included in a base Struts 2 distribution.</p>
 
-<blockquote>
-  <p>NOTE: Since Struts 6.4.0 the <code class="language-plaintext 
highlighter-rouge">FileUploadInterceptor</code> is deprecated, and you should 
use <code class="language-plaintext 
highlighter-rouge">ActionFileUploadInterceptor</code> instead!</p>
-</blockquote>
-
 <h2 id="basic-usage">Basic Usage</h2>
 
-<p>The <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.interceptor.FileUploadInterceptor</code> 
and <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.interceptor.ActionFileUploadInterceptor</code>
-interceptors are included as part of the <code class="language-plaintext 
highlighter-rouge">defaultStack</code> and named appropriately: <code 
class="language-plaintext highlighter-rouge">fileUpload</code> and <code 
class="language-plaintext highlighter-rouge">actionFileUpload</code>. 
-As long as the required libraries are added to your project you will be able 
to take advantage of the Struts 2 file upload 
-capability. Configure an Action mapping for your Action class as you typically 
would.</p>
+<p>The <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.interceptor.ActionFileUploadInterceptor</code>
 interceptor is included as part of the <code class="language-plaintext 
highlighter-rouge">defaultStack</code> 
+and named <code class="language-plaintext 
highlighter-rouge">actionFileUpload</code>. As long as the required libraries 
are added to your project you will be able to take 
+advantage of the Struts 2 file upload capability. Configure an Action mapping 
for your Action class as you typically would.</p>
 
 <h3 id="example-action-mapping">Example action mapping:</h3>
 
@@ -250,71 +243,6 @@ information and content of uploaded file. Your action 
should implement the inter
 <span class="o">}</span>
 </code></pre></div></div>
 
-<p><strong>Deprecated approach</strong>: the fileUpload interceptor will use 
setter injection to insert the uploaded file and related data into your Action
-class. For a form field named <code class="language-plaintext 
highlighter-rouge">upload</code> you would provide the three setter methods 
shown in the following example:</p>
-
-<h3 id="example-action-class">Example Action class:</h3>
-
-<div class="language-java highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kn">package</span> <span 
class="nn">com.example</span><span class="o">;</span>
-
-<span class="kn">import</span> <span class="nn">java.io.File</span><span 
class="o">;</span>
-
-<span class="kn">import</span> <span 
class="nn">com.opensymphony.xwork2.ActionSupport</span><span class="o">;</span>
-
-<span class="kd">public</span> <span class="kd">class</span> <span 
class="nc">UploadAction</span> <span class="kd">extends</span> <span 
class="nc">ActionSupport</span> <span class="o">{</span>
-    <span class="kd">private</span> <span class="nc">File</span> <span 
class="n">file</span><span class="o">;</span>
-    <span class="kd">private</span> <span class="nc">String</span> <span 
class="n">contentType</span><span class="o">;</span>
-    <span class="kd">private</span> <span class="nc">String</span> <span 
class="n">filename</span><span class="o">;</span>
-
-    <span class="nd">@StrutsParameter</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">setUpload</span><span class="o">(</span><span class="nc">File</span> 
<span class="n">file</span><span class="o">)</span> <span class="o">{</span>
-        <span class="k">this</span><span class="o">.</span><span 
class="na">file</span> <span class="o">=</span> <span 
class="n">file</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="nd">@StrutsParameter</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">setUploadContentType</span><span class="o">(</span><span 
class="nc">String</span> <span class="n">contentType</span><span 
class="o">)</span> <span class="o">{</span>
-        <span class="k">this</span><span class="o">.</span><span 
class="na">contentType</span> <span class="o">=</span> <span 
class="n">contentType</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="nd">@StrutsParameter</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">setUploadFileName</span><span class="o">(</span><span 
class="nc">String</span> <span class="n">filename</span><span 
class="o">)</span> <span class="o">{</span>
-        <span class="k">this</span><span class="o">.</span><span 
class="na">filename</span> <span class="o">=</span> <span 
class="n">filename</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="kd">public</span> <span class="nc">String</span> <span 
class="nf">execute</span><span class="o">()</span> <span class="o">{</span>
-        <span class="c1">//...</span>
-        <span class="k">return</span> <span class="no">SUCCESS</span><span 
class="o">;</span>
-    <span class="o">}</span>
-<span class="o">}</span>
-</code></pre></div></div>
-
-<p>The purpose of each one of these methods is described in the table below. 
Notice that if you have multiple file form
-elements with different names you would be required to have another 
corresponding set of these methods for each file
-uploaded.</p>
-
-<table>
-  <thead>
-    <tr>
-      <th>Method Signature</th>
-      <th>Description</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td><code class="language-plaintext highlighter-rouge">setX(File 
file)</code></td>
-      <td>The file that contains the content of the uploaded file. This is a 
temporary file and file.getName() will not return the original name of the 
file</td>
-    </tr>
-    <tr>
-      <td><code class="language-plaintext 
highlighter-rouge">setXContentType(String contentType)</code></td>
-      <td>The mime type of the uploaded file</td>
-    </tr>
-    <tr>
-      <td><code class="language-plaintext 
highlighter-rouge">setXFileName(String fileName)</code></td>
-      <td>The actual file name of the uploaded file (not the HTML name)</td>
-    </tr>
-  </tbody>
-</table>
-
 <h2 id="uploading-multiple-files">Uploading Multiple Files</h2>
 
 <p>As mentioned in the previous section one technique for uploading multiple 
files would be to simply have multiple form
@@ -336,128 +264,8 @@ see <code class="language-plaintext 
highlighter-rouge">struts-fileupload.xml</co
 <span class="nt">&lt;/s:form&gt;</span>
 </code></pre></div></div>
 
-<p>The <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.action.UploadedFilesAware</code> 
interface already supports uploading multiple files, you do not need to
-follow the below example.</p>
-
-<p><strong>Deprecated approach</strong>: <code class="language-plaintext 
highlighter-rouge">MultipleFileUploadUsingArrayAction.java</code></p>
-
-<div class="language-java highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kd">public</span> <span 
class="kd">class</span> <span 
class="nc">MultipleFileUploadUsingArrayAction</span> <span 
class="kd">extends</span> <span class="nc">ActionSupport</span> <span 
class="o">{</span>
-    <span class="kd">private</span> <span class="nc">File</span><span 
class="o">[]</span> <span class="n">uploads</span><span class="o">;</span>
-    <span class="kd">private</span> <span class="nc">String</span><span 
class="o">[]</span> <span class="n">uploadFileNames</span><span 
class="o">;</span>
-    <span class="kd">private</span> <span class="nc">String</span><span 
class="o">[]</span> <span class="n">uploadContentTypes</span><span 
class="o">;</span>
-
-    <span class="kd">public</span> <span class="nc">String</span> <span 
class="nf">upload</span><span class="o">()</span> <span 
class="kd">throws</span> <span class="nc">Exception</span> <span 
class="o">{</span>
-        <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"\n\n 
upload2"</span><span class="o">);</span>
-        <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span 
class="s">"files:"</span><span class="o">);</span>
-        <span class="k">for</span> <span class="o">(</span><span 
class="nc">File</span> <span class="n">u</span> <span class="o">:</span> <span 
class="n">uploads</span><span class="o">)</span> <span class="o">{</span>
-            <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"*** "</span> 
<span class="o">+</span> <span class="n">u</span> <span class="o">+</span> 
<span class="s">"\t"</span> <span class="o">+</span> <span 
class="n">u</span><span class="o">.</span><span class="na">length</span><span 
class="o">());</span>
-        <span class="o">}</span>
-        <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span 
class="s">"filenames:"</span><span class="o">);</span>
-        <span class="k">for</span> <span class="o">(</span><span 
class="nc">String</span> <span class="n">n</span> <span class="o">:</span> 
<span class="n">uploadFileNames</span><span class="o">)</span> <span 
class="o">{</span>
-            <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"*** "</span> 
<span class="o">+</span> <span class="n">n</span><span class="o">);</span>
-        <span class="o">}</span>
-        <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"content 
types:"</span><span class="o">);</span>
-        <span class="k">for</span> <span class="o">(</span><span 
class="nc">String</span> <span class="n">c</span> <span class="o">:</span> 
<span class="n">uploadContentTypes</span><span class="o">)</span> <span 
class="o">{</span>
-            <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"*** "</span> 
<span class="o">+</span> <span class="n">c</span><span class="o">);</span>
-        <span class="o">}</span>
-        <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span 
class="s">"\n\n"</span><span class="o">);</span>
-        <span class="k">return</span> <span class="no">SUCCESS</span><span 
class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="kd">public</span> <span class="nc">File</span><span 
class="o">[]</span> <span class="nf">getUpload</span><span class="o">()</span> 
<span class="o">{</span>
-        <span class="k">return</span> <span class="k">this</span><span 
class="o">.</span><span class="na">uploads</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="nd">@StrutsParameter</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">setUpload</span><span class="o">(</span><span 
class="nc">File</span><span class="o">[]</span> <span 
class="n">upload</span><span class="o">)</span> <span class="o">{</span>
-        <span class="k">this</span><span class="o">.</span><span 
class="na">uploads</span> <span class="o">=</span> <span 
class="n">upload</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="kd">public</span> <span class="nc">String</span><span 
class="o">[]</span> <span class="nf">getUploadFileName</span><span 
class="o">()</span> <span class="o">{</span>
-        <span class="k">return</span> <span class="k">this</span><span 
class="o">.</span><span class="na">uploadFileNames</span><span 
class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="nd">@StrutsParameter</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">setUploadFileName</span><span class="o">(</span><span 
class="nc">String</span><span class="o">[]</span> <span 
class="n">uploadFileName</span><span class="o">)</span> <span class="o">{</span>
-        <span class="k">this</span><span class="o">.</span><span 
class="na">uploadFileNames</span> <span class="o">=</span> <span 
class="n">uploadFileName</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="kd">public</span> <span class="nc">String</span><span 
class="o">[]</span> <span class="nf">getUploadContentType</span><span 
class="o">()</span> <span class="o">{</span>
-        <span class="k">return</span> <span class="k">this</span><span 
class="o">.</span><span class="na">uploadContentTypes</span><span 
class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="nd">@StrutsParameter</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">setUploadContentType</span><span class="o">(</span><span 
class="nc">String</span><span class="o">[]</span> <span 
class="n">uploadContentType</span><span class="o">)</span> <span 
class="o">{</span>
-        <span class="k">this</span><span class="o">.</span><span 
class="na">uploadContentTypes</span> <span class="o">=</span> <span 
class="n">uploadContentType</span><span class="o">;</span>
-    <span class="o">}</span>
-<span class="o">}</span>
-</code></pre></div></div>
-
-<h3 id="uploading-multiple-files-using-lists">Uploading Multiple Files using 
Lists</h3>
-
-<p><code class="language-plaintext 
highlighter-rouge">multipleUploadUsingList.jsp</code> Notice all file input 
types have the same name.</p>
-
-<div class="language-html highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;s:form</span> <span 
class="na">action=</span><span class="s">"doMultipleUploadUsingList"</span> 
<span class="na">method=</span><span class="s">"POST"</span> <span 
class="na">enctype=</span><span class="s">"multipart/form-data"</span><span 
class="nt">&gt;</span>
-    <span class="nt">&lt;s:file</span> <span class="na">label=</span><span 
class="s">"File (1)"</span> <span class="na">name=</span><span 
class="s">"upload"</span><span class="nt">/&gt;</span>
-    <span class="nt">&lt;s:file</span> <span class="na">label=</span><span 
class="s">"File (2)"</span> <span class="na">name=</span><span 
class="s">"upload"</span><span class="nt">/&gt;</span>
-    <span class="nt">&lt;s:file</span> <span class="na">label=</span><span 
class="s">"FIle (3)"</span> <span class="na">name=</span><span 
class="s">"upload"</span><span class="nt">/&gt;</span>
-    <span class="nt">&lt;s:submit</span> <span 
class="na">cssClass=</span><span class="s">"btn btn-primary"</span><span 
class="nt">/&gt;</span>
-<span class="nt">&lt;/s:form&gt;</span>
-</code></pre></div></div>
-
-<p><code class="language-plaintext 
highlighter-rouge">MultipleFileUploadUsingListAction.java</code></p>
-
-<div class="language-java highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kd">public</span> <span 
class="kd">class</span> <span 
class="nc">MultipleFileUploadUsingListAction</span> <span 
class="kd">extends</span> <span class="nc">ActionSupport</span> <span 
class="o">{</span>
-    <span class="kd">private</span> <span class="nc">List</span><span 
class="o">&lt;</span><span class="nc">File</span><span class="o">&gt;</span> 
<span class="n">uploads</span> <span class="o">=</span> <span 
class="k">new</span> <span class="nc">ArrayList</span><span 
class="o">&lt;</span><span class="nc">File</span><span class="o">&gt;();</span>
-    <span class="kd">private</span> <span class="nc">List</span><span 
class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;</span> 
<span class="n">uploadFileNames</span> <span class="o">=</span> <span 
class="k">new</span> <span class="nc">ArrayList</span><span 
class="o">&lt;</span><span class="nc">String</span><span 
class="o">&gt;();</span>
-    <span class="kd">private</span> <span class="nc">List</span><span 
class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;</span> 
<span class="n">uploadContentTypes</span> <span class="o">=</span> <span 
class="k">new</span> <span class="nc">ArrayList</span><span 
class="o">&lt;</span><span class="nc">String</span><span 
class="o">&gt;();</span>
-
-    <span class="kd">public</span> <span class="nc">List</span><span 
class="o">&lt;</span><span class="nc">File</span><span class="o">&gt;</span> 
<span class="nf">getUpload</span><span class="o">()</span> <span 
class="o">{</span>
-        <span class="k">return</span> <span class="k">this</span><span 
class="o">.</span><span class="na">uploads</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="nd">@StrutsParameter</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">setUpload</span><span class="o">(</span><span 
class="nc">List</span><span class="o">&lt;</span><span 
class="nc">File</span><span class="o">&gt;</span> <span 
class="n">uploads</span><span class="o">)</span> <span class="o">{</span>
-        <span class="k">this</span><span class="o">.</span><span 
class="na">uploads</span> <span class="o">=</span> <span 
class="n">uploads</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="kd">public</span> <span class="nc">List</span><span 
class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;</span> 
<span class="nf">getUploadFileName</span><span class="o">()</span> <span 
class="o">{</span>
-        <span class="k">return</span> <span class="k">this</span><span 
class="o">.</span><span class="na">uploadFileNames</span><span 
class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="nd">@StrutsParameter</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">setUploadFileName</span><span class="o">(</span><span 
class="nc">List</span><span class="o">&lt;</span><span 
class="nc">String</span><span class="o">&gt;</span> <span 
class="n">uploadFileNames</span><span class="o">)</span> <span 
class="o">{</span>
-        <span class="k">this</span><span class="o">.</span><span 
class="na">uploadFileNames</span> <span class="o">=</span> <span 
class="n">uploadFileNames</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="kd">public</span> <span class="nc">List</span><span 
class="o">&lt;</span><span class="nc">String</span><span class="o">&gt;</span> 
<span class="nf">getUploadContentType</span><span class="o">()</span> <span 
class="o">{</span>
-        <span class="k">return</span> <span class="k">this</span><span 
class="o">.</span><span class="na">uploadContentTypes</span><span 
class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="nd">@StrutsParameter</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">setUploadContentType</span><span class="o">(</span><span 
class="nc">List</span><span class="o">&lt;</span><span 
class="nc">String</span><span class="o">&gt;</span> <span 
class="n">contentTypes</span><span class="o">)</span> <span class="o">{</span>
-        <span class="k">this</span><span class="o">.</span><span 
class="na">uploadContentTypes</span> <span class="o">=</span> <span 
class="n">contentTypes</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="kd">public</span> <span class="nc">String</span> <span 
class="nf">upload</span><span class="o">()</span> <span 
class="kd">throws</span> <span class="nc">Exception</span> <span 
class="o">{</span>
-        <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"\n\n 
upload1"</span><span class="o">);</span>
-        <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span 
class="s">"files:"</span><span class="o">);</span>
-        <span class="k">for</span> <span class="o">(</span><span 
class="nc">File</span> <span class="n">u</span> <span class="o">:</span> <span 
class="n">uploads</span><span class="o">)</span> <span class="o">{</span>
-            <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"*** "</span> 
<span class="o">+</span> <span class="n">u</span> <span class="o">+</span> 
<span class="s">"\t"</span> <span class="o">+</span> <span 
class="n">u</span><span class="o">.</span><span class="na">length</span><span 
class="o">());</span>
-        <span class="o">}</span>
-        <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span 
class="s">"filenames:"</span><span class="o">);</span>
-        <span class="k">for</span> <span class="o">(</span><span 
class="nc">String</span> <span class="n">n</span> <span class="o">:</span> 
<span class="n">uploadFileNames</span><span class="o">)</span> <span 
class="o">{</span>
-            <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"*** "</span> 
<span class="o">+</span> <span class="n">n</span><span class="o">);</span>
-        <span class="o">}</span>
-        <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"content 
types:"</span><span class="o">);</span>
-        <span class="k">for</span> <span class="o">(</span><span 
class="nc">String</span> <span class="n">c</span> <span class="o">:</span> 
<span class="n">uploadContentTypes</span><span class="o">)</span> <span 
class="o">{</span>
-            <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"*** "</span> 
<span class="o">+</span> <span class="n">c</span><span class="o">);</span>
-        <span class="o">}</span>
-        <span class="nc">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span 
class="s">"\n\n"</span><span class="o">);</span>
-        <span class="k">return</span> <span class="no">SUCCESS</span><span 
class="o">;</span>
-    <span class="o">}</span>
-<span class="o">}</span>
-</code></pre></div></div>
+<p>The <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.action.UploadedFilesAware</code> 
interface already supports uploading multiple files, you do not need 
+to  follow the below example.</p>
 
 <h2 id="advanced-configuration">Advanced Configuration</h2>
 
@@ -506,6 +314,7 @@ a file that is too large. Note that the aforementioned 
settings are applied at t
 precedence over this interceptor setting.</p>
 
 <p>Notice the locations of these settings in the following example:</p>
+
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;struts&gt;</span>
     <span class="nt">&lt;constant</span> <span class="na">name=</span><span 
class="s">"struts.multipart.maxSize"</span> <span class="na">value=</span><span 
class="s">"1000000"</span><span class="nt">/&gt;</span>
     <span class="nt">&lt;constant</span> <span class="na">name=</span><span 
class="s">"struts.multipart.maxFileSize"</span> <span 
class="na">value=</span><span class="s">"750000"</span><span 
class="nt">/&gt;</span>
@@ -522,10 +331,11 @@ precedence over this interceptor setting.</p>
     <span class="nt">&lt;/action&gt;</span>
 <span class="nt">&lt;/struts&gt;</span>
 </code></pre></div></div>
+
 <h3 id="normal-field-size-limit">Normal Field Size Limit</h3>
 
 <p>Since Struts 6.1.2.1 a new option has been introduced to limit the size of 
a normal string field in the multipart request.
-The defeault limit is set to 4096 bytes:</p>
+The default limit is set to 4096 bytes:</p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code>struts.multipart.maxStringLength=4096
 </code></pre></div></div>
@@ -653,10 +463,8 @@ follow:</p>
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code>^multipart/form-data(?:\\s*;\\s*boundary=[0-9a-zA-Z'()+_,\\-./:=?]{1,70})?(?:\\s*;\\s*charset=[a-zA-Z\\-0-9]{3,14})?
 </code></pre></div></div>
 
-<p>Please read <a 
href="https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html";>RFC1341</a> the 
<strong>Multipart section</strong> for more
-details,
-existing Struts <code class="language-plaintext 
highlighter-rouge">Multipart</code> parsers support only <code 
class="language-plaintext highlighter-rouge">multipart/form-data</code> content 
type. This option is available since
-Struts 2.3.11.</p>
+<p>Please read <a 
href="https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html";>RFC1341</a> the 
<strong>Multipart section</strong> for more details, existing Struts <code 
class="language-plaintext highlighter-rouge">Multipart</code> parsers support 
+only <code class="language-plaintext 
highlighter-rouge">multipart/form-data</code> content type. This option is 
available since Struts 2.3.11.</p>
 
 <h3 id="disabling-file-upload-support">Disabling file upload support</h3>
 
diff --git a/content/core-developers/file-upload.html 
b/content/core-developers/file-upload.html
index b3e1253f5..13d33aa54 100644
--- a/content/core-developers/file-upload.html
+++ b/content/core-developers/file-upload.html
@@ -148,7 +148,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/core-developers/file-upload.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="action-file-upload-interceptor" title="back to Action File Upload 
Interceptor"><< back to Action File Upload Interceptor</a>
+    <a href="file-upload-interceptor" title="back to File Upload 
Interceptor"><< back to File Upload Interceptor</a>
     
     <h1 class="no_toc" id="file-upload">File Upload</h1>
 
@@ -179,6 +179,8 @@
   </li>
 </ul>
 
+<p class="alert alert-block alert-error">Since Struts 6.4.0 the <code 
class="language-plaintext highlighter-rouge">FileUploadInterceptor</code> is 
deprecated, and you should use <a 
href="action-file-upload-interceptor">ActionFileUploadInterceptor</a> 
instead!</p>
+
 <p>The Struts 2 framework provides built-in support for processing file 
uploads that conform to <a href="http://www.ietf.org/rfc/rfc1867.txt";>RFC 
1867</a>, 
 “Form-based File Upload in HTML”. When correctly configured the framework will 
pass uploaded file(s) into your Action
 class. Support for individual and multiple file uploads are provided. When a 
file is uploaded it will typically be
@@ -191,16 +193,11 @@ than the temporary directory and the directories that 
belong to your web applica
 <p>The Struts 2 framework leverages the Commons FileUpload library as a based 
library to support file upload in the framework.
 The library is included in a base Struts 2 distribution.</p>
 
-<blockquote>
-  <p>NOTE: Since Struts 6.4.0 the <code class="language-plaintext 
highlighter-rouge">FileUploadInterceptor</code> is deprecated, and you should 
use <code class="language-plaintext 
highlighter-rouge">ActionFileUploadInterceptor</code> instead!</p>
-</blockquote>
-
 <h2 id="basic-usage">Basic Usage</h2>
 
-<p>The <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.interceptor.FileUploadInterceptor</code> 
and <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.interceptor.ActionFileUploadInterceptor</code>
-interceptors are included as part of the <code class="language-plaintext 
highlighter-rouge">defaultStack</code> and named appropriately: <code 
class="language-plaintext highlighter-rouge">fileUpload</code> and <code 
class="language-plaintext highlighter-rouge">actionFileUpload</code>. 
-As long as the required libraries are added to your project you will be able 
to take advantage of the Struts 2 file upload 
-capability. Configure an Action mapping for your Action class as you typically 
would.</p>
+<p>The <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.interceptor.FileUploadInterceptor</code> 
interceptor is included as part of the <code class="language-plaintext 
highlighter-rouge">defaultStack</code> 
+and named <code class="language-plaintext 
highlighter-rouge">fileUpload</code>. As long as the required libraries are 
added to your project you will be able to take 
+advantage of the Struts 2 file upload capability. Configure an Action mapping 
for your Action class as you typically would.</p>
 
 <h3 id="example-action-mapping">Example action mapping:</h3>
 
@@ -223,34 +220,7 @@ example:</p>
 <span class="nt">&lt;/s:form&gt;</span>
 </code></pre></div></div>
 
-<p>The actionFileUpload interceptor will use a dedicated interface <code 
class="language-plaintext 
highlighter-rouge">org.apache.struts2.action.UploadedFilesAware</code> to 
transfer
-information and content of uploaded file. Your action should implement the 
interface to receive the uploaded file:</p>
-
-<div class="language-java highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kd">public</span> <span 
class="kd">class</span> <span class="nc">UploadAction</span> <span 
class="kd">extends</span> <span class="nc">ActionSupport</span> <span 
class="kd">implements</span> <span class="nc">UploadedFilesAware</span> <span 
class="o">{</span>
-  
-    <span class="kd">private</span> <span class="nc">UploadedFile</span> <span 
class="n">uploadedFile</span><span class="o">;</span>
-    <span class="kd">private</span> <span class="nc">String</span> <span 
class="n">contentType</span><span class="o">;</span>
-    <span class="kd">private</span> <span class="nc">String</span> <span 
class="n">fileName</span><span class="o">;</span>
-    <span class="kd">private</span> <span class="nc">String</span> <span 
class="n">originalName</span><span class="o">;</span>
-
-    <span class="nd">@Override</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">withUploadedFiles</span><span class="o">(</span><span 
class="nc">List</span><span class="o">&lt;</span><span 
class="nc">UploadedFile</span><span class="o">&gt;</span> <span 
class="n">uploadedFiles</span><span class="o">)</span> <span class="o">{</span>
-        <span class="k">if</span> <span class="o">(!</span><span 
class="n">uploadedFiles</span><span class="o">.</span><span 
class="na">isEmpty</span><span class="o">())</span> <span class="o">{</span>
-          <span class="k">this</span><span class="o">.</span><span 
class="na">uploadedFile</span> <span class="o">=</span> <span 
class="n">uploadedFiles</span><span class="o">.</span><span 
class="na">get</span><span class="o">(</span><span class="mi">0</span><span 
class="o">);</span>
-          <span class="k">this</span><span class="o">.</span><span 
class="na">fileName</span> <span class="o">=</span> <span 
class="n">uploadedFile</span><span class="o">.</span><span 
class="na">getName</span><span class="o">();</span>
-          <span class="k">this</span><span class="o">.</span><span 
class="na">contentType</span> <span class="o">=</span> <span 
class="n">uploadedFile</span><span class="o">.</span><span 
class="na">getContentType</span><span class="o">();</span>
-          <span class="k">this</span><span class="o">.</span><span 
class="na">originalName</span> <span class="o">=</span> <span 
class="n">uploadedFile</span><span class="o">.</span><span 
class="na">getOriginalName</span><span class="o">();</span>
-        <span class="o">}</span>
-    <span class="o">}</span>
-
-    <span class="kd">public</span> <span class="nc">String</span> <span 
class="nf">execute</span><span class="o">()</span> <span class="o">{</span>
-        <span class="c1">// do something with the file</span>
-        <span class="k">return</span> <span class="no">SUCCESS</span><span 
class="o">;</span>
-    <span class="o">}</span>
-<span class="o">}</span>
-</code></pre></div></div>
-
-<p><strong>Deprecated approach</strong>: the fileUpload interceptor will use 
setter injection to insert the uploaded file and related data into your Action
+<p>The <strong>fileUpload</strong> interceptor will use setter injection to 
insert the uploaded file and related data into your Action
 class. For a form field named <code class="language-plaintext 
highlighter-rouge">upload</code> you would provide the three setter methods 
shown in the following example:</p>
 
 <h3 id="example-action-class">Example Action class:</h3>
@@ -336,10 +306,7 @@ see <code class="language-plaintext 
highlighter-rouge">struts-fileupload.xml</co
 <span class="nt">&lt;/s:form&gt;</span>
 </code></pre></div></div>
 
-<p>The <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.action.UploadedFilesAware</code> 
interface already supports uploading multiple files, you do not need to
-follow the below example.</p>
-
-<p><strong>Deprecated approach</strong>: <code class="language-plaintext 
highlighter-rouge">MultipleFileUploadUsingArrayAction.java</code></p>
+<p><strong>MultipleFileUploadUsingArrayAction.java</strong></p>
 
 <div class="language-java highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kd">public</span> <span 
class="kd">class</span> <span 
class="nc">MultipleFileUploadUsingArrayAction</span> <span 
class="kd">extends</span> <span class="nc">ActionSupport</span> <span 
class="o">{</span>
     <span class="kd">private</span> <span class="nc">File</span><span 
class="o">[]</span> <span class="n">uploads</span><span class="o">;</span>
@@ -522,6 +489,7 @@ precedence over this interceptor setting.</p>
     <span class="nt">&lt;/action&gt;</span>
 <span class="nt">&lt;/struts&gt;</span>
 </code></pre></div></div>
+
 <h3 id="normal-field-size-limit">Normal Field Size Limit</h3>
 
 <p>Since Struts 6.1.2.1 a new option has been introduced to limit the size of 
a normal string field in the multipart request.


Reply via email to