GVKun编程网logo

java web 实现文件夹上传(保留目录结构)(javaweb文件上传路径问题)

1

如果您对javaweb实现文件夹上传(保留目录结构)感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于javaweb实现文件夹上传(保留目录结构)的详细内容,我们还将为您解答j

如果您对java web 实现文件夹上传(保留目录结构)感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于java web 实现文件夹上传(保留目录结构)的详细内容,我们还将为您解答javaweb文件上传路径问题的相关问题,并且为您提供关于.NET Web 部件 | Web 部件管理器 | Web 部件区、Airflow/Pentaho Java 错误 - 启动 mvn 时出错:org.ops4j.pax.web/pax-web-runtime/7.2.10、asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API、asp.net-web-api – Windows.Web.Http.HttpClient WEB API Windows身份验证的有价值信息。

本文目录一览:

java web 实现文件夹上传(保留目录结构)(javaweb文件上传路径问题)

java web 实现文件夹上传(保留目录结构)(javaweb文件上传路径问题)

javaweb上传文件

上传文件的jsp中的部分

上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求

    1.通过form表单向后端发送请求

         <form id="postForm" action="${pageContext.request.contextpath}/UploadServlet" method="post" enctype="multipart/form-data">

            <div class="bbxx wrap">

                <inputtype="text" id="side-profile-name" name="username" class="form-control">

                <inputtype="file" id="example-file-input" name="avatar">

                <button type="submit" class="btn btn-effect-ripple btn-primary">Save</button>

            </div>

        </form>

改进后的代码不需要form标签,直接由控件来实现。开发人员只需要关注业务逻辑即可。JS中已经帮我们封闭好了

通过监控工具可以看到控件提交的数据,非常的清晰,调试也非常的简单。

 

2.通过ajax向后端发送请求

        1.

            $.ajax({ 

                 url : "${pageContext.request.contextpath}/UploadServlet"

                 type : "POST",sans-serif; font-size: 12pt;">                 data : $( ‘#postForm‘).serialize(),sans-serif; font-size: 12pt;">                 success : function(data) { 

                      $( ‘#serverResponse‘).html(data); 

                 }, 

                 error : function(data) { 

                      $( ‘#serverResponse‘).html(data.status + " : " + data.statusText + " : " + data.responseText); 

                 

            }); 

ajax分为两部分,一部分是初始化,文件在上传前通过AJAX请求通知服务端进行初始化操作

在文件上传完后向服务器发送通知

这里需要处理一个MD5秒传的逻辑,当服务器存在相同文件时,不需要用户再上传,而是直接通知用户秒传

这里可以看到秒传的逻辑是非常 简单的,并不是特别的复杂。

            var form = new FormData();

            form.append("username","zxj");

            form.append("avatar",file);

            //var form = new FormData($("#postForm")[0]);

            $.ajax({

                url:"${pageContext.request.contextpath}/UploadServlet",

                type:"post",sans-serif; font-size: 12pt;">                data:form,

                processData:false,sans-serif; font-size: 12pt;">                contentType:false,sans-serif; font-size: 12pt;">                success:function(data){

         

                    console.log(data);

                }

            });

java部分

文件初始化的逻辑

接收文件块数据,在这个逻辑中我们接收文件块数据。控件对数据进行了优化,可以方便调试。如果用监控工具可以看到控件提交的数据。

注:

1. 上面的java部分的代码可以直接使用,只需要将上传的图片路径及收集数据并将数据写入到数据库即可

2. 上面上传文件使用到了字节流,其实还可以使用别的流,这个需要读者自己在下面完善测试

3. BeanUtils是一个工具 便于将实体对应的属性赋给实体

4. 上传文件不能使用 request.getParameter("")获取参数了,而是直接将request解析,通过判断每一项是文件还是非文件,然后进行相应的操作(文件的话就是用流来读取,非文件的话,暂时保存到一个map中。)

后端代码逻辑大部分是相同的,目前能够支持MysqL,Oracle,sql。在使用前需要配置一下数据库,可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/12/java-http%E5%A4%A7%E6%96%87%E4%BB%B6%E6%96%AD%E7%82%B9%E7%BB%AD%E4%BC%A0%E4%B8%8A%E4%BC%A0/

.NET Web 部件 | Web 部件管理器 | Web 部件区

.NET Web 部件 | Web 部件管理器 | Web 部件区

如何解决.NET Web 部件 | Web 部件管理器 | Web 部件区

我在 ASP.NET Web 窗体中使用 Web 部件。我的项目运行正常。 但是,当我拖放 Web 部件管理器时出现此错误,谁能指导我如何在 Windows 10 中解决此问题。

与 sql Server 建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 sql Server 是否配置为允许远程连接。 (提供程序:sql 网络接口,错误:26 - 错误定位服务器/指定的实例)

Airflow/Pentaho Java 错误 - 启动 mvn 时出错:org.ops4j.pax.web/pax-web-runtime/7.2.10

Airflow/Pentaho Java 错误 - 启动 mvn 时出错:org.ops4j.pax.web/pax-web-runtime/7.2.10

如何解决Airflow/Pentaho Java 错误 - 启动 mvn 时出错:org.ops4j.pax.web/pax-web-runtime/7.2.10

我目前正在使用 Airflow 2.0 使用 BashOperator 来安排我的 Pentaho 作业,如下例所示:

sudo /d/Airflow/pdi-ce-9.1.0.0-324/data-integration/pan.sh -rep:"penta_repo" -user:123 -pass:123 -dir:TEST/RUN_IT -trans:"RUN_IT_1" -level:Basic

当我运行它时,有很多与java库相关的错误。这是日志的一部分:

[...]
[2021-03-04 11:40:49,072] {bash.py:173} INFO - SEVERE: Bundle org.ops4j.pax.web.pax-web-runtime [190] Error starting mvn:org.ops4j.pax.web/pax-web-runtime/7.2.10 (org.osgi.framework.BundleException: Activator start error in bundle org.ops4j.pax.web.pax-web-runtime [190].)
[2021-03-04 11:40:49,072] {bash.py:173} INFO - org.osgi.framework.BundleException: Activator start error in bundle org.ops4j.pax.web.pax-web-runtime [190].
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.activateBundle(Felix.java:2290)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.startBundle(Felix.java:2146)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.setActiveStartLevel(Felix.java:1373)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.Thread.run(Thread.java:748)
[2021-03-04 11:40:49,072] {bash.py:173} INFO - Caused by: java.lang.NoClassDefFoundError: org/osgi/service/cm/ConfigurationException
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.class.getDeclaredConstructors0(Native Method)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.class.privateGetDeclaredConstructors(Class.java:2671)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.class.getConstructor0(Class.java:3075)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.class.newInstance(Class.java:412)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.createBundleActivator(Felix.java:4512)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.activateBundle(Felix.java:2221)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  ... 4 more
[2021-03-04 11:40:49,072] {bash.py:173} INFO - Caused by: java.lang.classNotFoundException: org.osgi.service.cm.ConfigurationException not found by org.ops4j.pax.web.pax-web-runtime [190]
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.classLoader.loadClass(ClassLoader.java:351)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  ... 10 more
[...]
[2021-03-04 11:43:56,982] {taskinstance.py:1396} ERROR - [Errno 1] Operation not permitted
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/airflow/models/taskinstance.py",line 1086,in _run_raw_task
    self._prepare_and_execute_task_with_callbacks(context,task)
  File "/usr/local/lib/python3.8/dist-packages/airflow/models/taskinstance.py",line 1260,in _prepare_and_execute_task_with_callbacks
    result = self._execute_task(context,task_copy)
  File "/usr/local/lib/python3.8/dist-packages/airflow/models/taskinstance.py",line 1300,in _execute_task
    result = task_copy.execute(context=context)
  File "/usr/local/lib/python3.8/dist-packages/airflow/operators/bash.py",line 171,in execute
    for raw_line in iter(self.sub_process.stdout.readline,b''''):
  File "/usr/local/lib/python3.8/dist-packages/airflow/models/taskinstance.py",line 1215,in signal_handler
    task_copy.on_kill()
  File "/usr/local/lib/python3.8/dist-packages/airflow/operators/bash.py",line 187,in on_kill
    os.killpg(os.getpgid(self.sub_process.pid),signal.SIGTERM)
PermissionError: [Errno 1] Operation not permitted

在这种情况下,有很多java错误并且我的任务没有运行。但是在很多情况下,尽管出现了错误,我的任务仍能成功运行。在这些情况下,bash 命令和 pentaho 执行之间有大约 5 分钟的延迟。下面是另一个成功执行的日志,bash 命令是 09:38AM 但 pentaho 仅在 09:42 AM 执行:

[2021-03-04 09:38:24,482] {bash.py:158} INFO - Running command: sudo /d/Airflow/pdi-ce-9.1.0.0-324/data-integration/pan.sh -rep:"penta_repo" -user:123 -pass:123 -dir:TEST/ALIMENTADOR -trans:"ALIMENTADOR_1" -level:Basic
[2021-03-04 09:38:24,525] {bash.py:169} INFO - Output:
[2021-03-04 09:38:28,739] {bash.py:173} INFO - 12:38:28,739 INFO  [KarafBoot] Checking to see if org.pentaho.clean.karaf.cache is enabled
[2021-03-04 09:38:32,001] {bash.py:173} INFO - 12:38:32,001 INFO  [KarafInstance]
[2021-03-04 09:38:32,001] {bash.py:173} INFO - *******************************************************************************
[2021-03-04 09:38:32,001] {bash.py:173} INFO - *** Karaf Instance Number: 68 at /d/Airflow/pdi-ce-9.1.0.0-324/data-integra ***
[2021-03-04 09:38:32,001] {bash.py:173} INFO - ***   tion/./system/karaf/caches/pan/data-1                                 ***
[2021-03-04 09:38:32,001] {bash.py:173} INFO - *** Karaf Port:8869                                                         ***
[2021-03-04 09:38:32,001] {bash.py:173} INFO - *** Osgi Service Port:9118                                                  ***
[2021-03-04 09:38:32,001] {bash.py:173} INFO - *******************************************************************************
[...]
[2021-03-04 09:38:36,773] {bash.py:173} INFO - 2021-03-04 12:38:36.770:INFO::FelixStartLevel: Logging initialized @11384ms to org.eclipse.jetty.util.log.StdErrLog
[2021-03-04 09:38:36,781] {bash.py:173} INFO - Mar 04,2021 12:38:36 PM org.apache.karaf.main.Main$1 log
[2021-03-04 09:38:36,782] {bash.py:173} INFO - SEVERE: Bundle org.ops4j.pax.web.pax-web-runtime [190] Error starting mvn:org.ops4j.pax.web/pax-web-runtime/7.2.10 (org.osgi.framework.BundleException: Activator start error in bundle org.ops4j.pax.web.pax-web-runtime [190].)
[2021-03-04 09:38:36,782] {bash.py:173} INFO - org.osgi.framework.BundleException: Activator start error in bundle org.ops4j.pax.web.pax-web-runtime [190].
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.activateBundle(Felix.java:2290)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.startBundle(Felix.java:2146)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.setActiveStartLevel(Felix.java:1373)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at java.lang.Thread.run(Thread.java:748)
[2021-03-04 09:38:36,782] {bash.py:173} INFO - Caused by: java.lang.NoClassDefFoundError: org/osgi/service/cm/ConfigurationException
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at java.lang.class.getDeclaredConstructors0(Native Method)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at java.lang.class.privateGetDeclaredConstructors(Class.java:2671)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at java.lang.class.getConstructor0(Class.java:3075)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at java.lang.class.newInstance(Class.java:412)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.createBundleActivator(Felix.java:4512)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.activateBundle(Felix.java:2221)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  ... 4 more
[2021-03-04 09:38:36,782] {bash.py:173} INFO - Caused by: java.lang.classNotFoundException: org.osgi.service.cm.ConfigurationException not found by org.ops4j.pax.web.pax-web-runtime [190]
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)
[2021-03-04 09:38:36,783] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
[2021-03-04 09:38:36,783] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
[2021-03-04 09:38:36,783] {bash.py:173} INFO -  at java.lang.classLoader.loadClass(ClassLoader.java:351)
[2021-03-04 09:38:36,783] {bash.py:173} INFO -  ... 10 more
[...]
[2021-03-04 09:42:37,209] {bash.py:173} INFO -  at org.pentaho.di.osgi.KarafLifecycleListener.waitForFeatures(KarafLifecycleListener.java:204)
[2021-03-04 09:42:37,209] {bash.py:173} INFO -  at org.pentaho.di.osgi.KarafLifecycleListener.waitForBundlesstarted(KarafLifecycleListener.java:177)
[2021-03-04 09:42:37,209] {bash.py:173} INFO -  at org.pentaho.di.osgi.KarafLifecycleListener.lambda$maybeStartWatchers$0(KarafLifecycleListener.java:160)
[2021-03-04 09:42:37,209] {bash.py:173} INFO -  at java.lang.Thread.run(Thread.java:748)
[2021-03-04 09:42:37,209] {bash.py:173} INFO - 12:42:37,208 INFO  [DriverManager] Finished installing drivers kars.
[2021-03-04 09:42:37,223] {bash.py:173} INFO - 2021/03/04 12:42:37 - Logging is at level : Basic
[2021-03-04 09:42:37,229] {bash.py:173} INFO - 2021/03/04 12:42:37 - Start of run.
[2021-03-04 09:42:37,243] {bash.py:173} INFO - 2021/03/04 12:42:37 - RepositoriesMeta - Reading repositories XML file: /d/Airflow/pdi-ce-9.1.0.0-324/data-integration/repositories.xml
[2021-03-04 09:42:39,936] {bash.py:173} INFO - 2021/03/04 12:42:39 - ALIMENTADOR_1 - dispatching started for transformation [ALIMENTADOR_1]
[2021-03-04 09:42:40,354] {bash.py:173} INFO - 2021/03/04 12:42:40 - BDN_STAGE_ST5P_ALIMENTADOR.0 - Connected to database [BDN_DCC] (commit=10000)
[2021-03-04 09:42:40,733] {bash.py:173} INFO - 2021/03/04 12:42:40 - OPER_ALIMENTADOR.0 - Finished reading query,closing connection.
[2021-03-04 09:42:40,740] {bash.py:173} INFO - 2021/03/04 12:42:40 - OPER_ALIMENTADOR.0 - Finished processing (I=1630,O=0,R=0,W=1630,U=0,E=0)
[2021-03-04 09:42:40,804] {bash.py:173} INFO - 2021/03/04 12:42:40 - BDN_STAGE_ST5P_ALIMENTADOR.0 - Finished processing (I=0,O=1630,R=1630,812] {bash.py:173} INFO - 2021/03/04 12:42:40 - Finished!
[2021-03-04 09:42:40,812] {bash.py:173} INFO - 2021/03/04 12:42:40 - Start=2021/03/04 12:42:39.933,Stop=2021/03/04 12:42:40.812
[2021-03-04 09:42:40,813] {bash.py:173} INFO - 2021/03/04 12:42:40 - Processing ended after 0 seconds.
[2021-03-04 09:42:40,813] {bash.py:173} INFO - 2021/03/04 12:42:40 - ALIMENTADOR_1 -
[2021-03-04 09:42:40,813] {bash.py:173} INFO - 2021/03/04 12:42:40 - ALIMENTADOR_1 - Step OPER_ALIMENTADOR.0 ended successfully,processed 1630 lines. ( - lines/s)
[2021-03-04 09:42:40,813] {bash.py:173} INFO - 2021/03/04 12:42:40 - ALIMENTADOR_1 - Step BDN_STAGE_ST5P_ALIMENTADOR.0 ended successfully,processed 1630 lines. ( - lines/s)
[2021-03-04 09:42:41,403] {bash.py:177} INFO - Command exited with return code 0
[2021-03-04 09:42:41,768] {taskinstance.py:1135} INFO - Marking task as SUCCESS. dag_id=ALIMENTADOR_JOB,task_id=Alimentador,execution_date=20210304T110100,start_date=20210304T123823,end_date=20210304T124241
[2021-03-04 09:42:41,865] {taskinstance.py:1195} INFO - 1 downstream tasks scheduled from follow-on schedule check
[2021-03-04 09:42:41,881] {local_task_job.py:118} INFO - Task exited with return code 0

我的问题是:

  1. 如何修复这些 Java 错误?
  2. 这些 java 错误是否与我成功运行时的延迟有关?

非常感谢!

asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API

asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API

我刚刚安装了Visual Studio 2012,并开始检查MVC 4和Web Api。
我已经用Web API创建了一个新的MVC 4应用程序。基于一些示例和教程,我开始配置我的路由:
routes.MapHttpRoute(
                name: "Controller only",routeTemplate: "api/{controller}"
            );

但是,这会导致RouteCollection不包含MapHttpRoute的定义的错误。我是否安装了一些DLL?
据我看到,我已经安装了所有正确的DLL和版本。

解决方法

我已经通过在RouteConfig.cs中添加对System.Web.Http的引用来解决它

asp.net-web-api – Windows.Web.Http.HttpClient WEB API Windows身份验证

asp.net-web-api – Windows.Web.Http.HttpClient WEB API Windows身份验证

我使用 Windows.Web.Http.HttpClient连接到我的WEB API.应用程序没有提示用户名和密码,但最近我通过将AuthorizeAttribute过滤器从Action级别移动到类级别来更改WEB API.现在我的Windows应用商店8.1应用程序提示用户ID和密码.请让我知道如何设置HttpClient不提示登录和密码. any1可以建议我,我需要添加标头到我的httpcleint

使用(Windows.Web.Http.HttpClient httpClient = new Windows.Web.Http.HttpClient())
                {
                    //添加用户代理标头
                    var headers = httpClient.DefaultRequestHeaders;

//检查用户标头值的安全方法是TryParseAdd方法
 //因为我们知道这个标题是可以的,所以我们使用ParseAdd会抛出异常
  //值不好 – http://msdn.microsoft.com/en-us/library/windows/apps/dn440594.aspx

headers.UserAgent.ParseAdd("ie");
                headers.UserAgent.ParseAdd("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");


                using (var response = await httpClient.GetAsync(new Uri(url)))

我没有看到发送默认凭据的方法.

解决方法

使用HttpBaseProtocolFilter.AllowUI禁用UI对话框.试试这个:

Windows.Web.Http.Filters.HttpBaseProtocolFilter filter =
    new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
filter.AllowUI = false;
HttpClient client = new HttpClient(filter);

Uri uri = new Uri("http://localhost/?basic=1");
var response = await client.GetAsync(uri);
System.Diagnostics.Debug.WriteLine(response);

你需要凭证吗?使用HttpBaseProtocolFilter.ServerCredential.试试这个:

Uri uri = new Uri("http://localhost?ntlm=1");

Windows.Web.Http.Filters.HttpBaseProtocolFilter filter =
    new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
filter.AllowUI = false;

// Set credentials that will be sent to the server.
filter.ServerCredential =
    new Windows.Security.Credentials.PasswordCredential(
        uri.ToString(),"userName","abracadabra");

HttpClient client = new HttpClient(filter);
var response = await client.GetAsync(uri);
System.Diagnostics.Debug.WriteLine(response);

您需要默认的Windows凭据(域凭据)吗?只需将Enterprise Authentication功能添加到Package.appxmanifest即可.

关于java web 实现文件夹上传(保留目录结构)javaweb文件上传路径问题的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于.NET Web 部件 | Web 部件管理器 | Web 部件区、Airflow/Pentaho Java 错误 - 启动 mvn 时出错:org.ops4j.pax.web/pax-web-runtime/7.2.10、asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API、asp.net-web-api – Windows.Web.Http.HttpClient WEB API Windows身份验证等相关内容,可以在本站寻找。

本文标签: