diff --git a/apache-commons-fileupload.spec b/apache-commons-fileupload.spec
new file mode 100644
index 0000000000000000000000000000000000000000..128beca4fbeb337e61ba49eb07589f1f1a53b4c4
--- /dev/null
+++ b/apache-commons-fileupload.spec
@@ -0,0 +1,59 @@
+%bcond_without portlet
+Name: apache-commons-fileupload
+Version: 1.4
+Release: 1
+Summary: API to work with HTML file upload
+License: ASL 2.0
+URL: http://commons.apache.org/fileupload/
+BuildArch: noarch
+Source0: http://archive.apache.org/dist/commons/fileupload/source/commons-fileupload-%{version}-src.tar.gz
+BuildRequires: maven-local mvn(commons-io:commons-io) mvn(javax.servlet:servlet-api)
+BuildRequires: mvn(junit:junit) mvn(org.apache.commons:commons-parent:pom:)
+%if %{with portlet}
+BuildRequires: mvn(javax.portlet:portlet-api)
+%endif
+%description
+The javax.servlet package lacks support for RFC-1867, HTML file
+upload. This package provides a simple to use API for working with
+such data. The scope of this package is to create a package of Java
+utility classes to read multipart/form-data within a
+javax.servlet.http.HttpServletRequest.
+
+%package help
+Summary: API documentation for %{name}
+Provides: %{name}-javadoc = %{version}-%{release}
+Obsoletes: %{name}-javadoc < %{version}-%{release}
+
+%description help
+This package contains the API documentation for %{name}.
+
+%prep
+%setup -q -n commons-fileupload-%{version}-src
+sed -i 's/\r//' LICENSE.txt
+sed -i 's/\r//' NOTICE.txt
+%if %{with portlet}
+sed -i "s|portlet-api|javax.portlet|" pom.xml
+%else
+%pom_remove_dep portlet-api:portlet-api
+%pom_xpath_remove pom:properties/pom:commons.osgi.import
+%pom_xpath_remove pom:properties/pom:commons.osgi.dynamicImport
+rm -r src/main/java/org/apache/commons/fileupload/portlet
+%endif
+%mvn_file ":{*}" @1 %{name}
+%mvn_alias : org.apache.commons:
+
+%build
+%mvn_build -f -- -Dcommons.osgi.symbolicName=org.apache.commons.fileupload
+
+%install
+%mvn_install
+
+%files -f .mfiles
+%license LICENSE.txt NOTICE.txt
+
+%files help -f .mfiles-javadoc
+%license LICENSE.txt NOTICE.txt
+
+%changelog
+* Tue Aug 4 2020 yanan li - 1.4-1
+- Package init
diff --git a/apache-commons-fileupload.yaml b/apache-commons-fileupload.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..836c5007a926283601d7108f03086e0bc9ae213a
--- /dev/null
+++ b/apache-commons-fileupload.yaml
@@ -0,0 +1,5 @@
+git_url: https://github.com/apache/commons-fileupload.git
+version_control: github
+src_repo: apache/commons-fileupload
+tag_prefix: "commons-fileupload-"
+seperator: "."
diff --git a/commons-fileupload-1.4-src.tar.gz b/commons-fileupload-1.4-src.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..980c45a77c0572c40da62503b85a5178bbac67f7
Binary files /dev/null and b/commons-fileupload-1.4-src.tar.gz differ