- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景:我正在寻找一个使用 Ajax + Struts 2 异步上传大文件的工具,我能够使用 servlet 执行相同的操作,但是当我修改逻辑以调用 Struts 操作时。我注意到,当我尝试使用 Struts 2 操作上传大文件时,它不会从 jQuery ajaxForm(options);
我已经使用了下面链接中指定的示例代码,效果非常好。 http://www.simplecodestuffs.com/file-upload-with-progress-bar-using-jquery-in-servlet/
任何人都可以判断下面的 jQuery 函数调用对于上传功能是否正确。
$("#uploadtest").ajaxForm(options);
我尝试过,但当上传大量数据时,它在某个特定浏览器中无法按预期工作。(也就是说,发生了客户端ajax调用,但是后端没有调用相应的Struts 2操作,服务器端没有生成日志)。
我无法理解为什么当 jQuery ajaxform
上传大文件(分段上传功能)时,没有调用 Struts 2 操作。
jQuery:
$("#uploadtest").ajaxForm(options);
JSP 片段:
<s:form id="uploadtest" name="uploadform" action="aStrutsAction" method="post" enctype="multipart/form-data">
提出类似问题here .
最佳答案
将大文件上传到 Struts2 操作的问题是请求可能不符合 Struts2 默认使用的限制。在配置设置中,该值设置为 2097152。您还可以设置每个操作的限制。有关更多信息,您可以在 Struts2 File Upload - Advanced Configuration 中找到:
<小时/>The Struts 2
default.properties
file defines several settings that affect the behavior of file uploading. You may find in necessary to change these values. The names and default values are:struts.multipart.parser=jakarta
struts.multipart.saveDir=
struts.multipart.maxSize=2097152
此文档页面的下一部分是 File Size Limits您已经注意到下划线框架(struts2、commons-fileupload)使用的文件大小的限制:
<小时/>There are two separate file size limits. First is
struts.multipart.maxSize
which comes from the Struts 2default.properties
file. This setting exists for security reasons toprohibit a malicious user from uploading extremely large files to fileup your servers disk space. This setting defaults to approximately 2megabytes and should be adjusted to the maximum size file (2 gigs max)that your will need the framework to receive. If you are uploadingmore than one file on a form thestruts.multipart.maxSize
applies tothe combined total, not the individual file sizes. The other setting,maximumSize
, is an interceptor setting that is used to ensure aparticular Action does not receive a file that is too large. Noticethe locations of both settings in the following example:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.multipart.maxSize" value="1000000" />
<action name="doUpload" class="com.example.UploadAction">
<interceptor-ref name="basicStack"/>
<interceptor-ref name="fileUpload">
<param name="maximumSize">500000</param>
</interceptor-ref>
<interceptor-ref name="validation"/>
<interceptor-ref name="workflow"/>
<result name="success">good_result.jsp</result>
</action>
</struts>
如果文件大小超过上述配置设置,伪进度条一返回响应就停止。它可能是 1% 或 100%,这取决于脱粒速度和文件大小。但在服务器端您可能会看到异常
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (xxx) exceeds the configured maximum (yyy)
以及以下警告。如果不超出框架本身的限制,您可以调整框架的文件大小限制。
关于jquery - 从 Struts 2 文件上传实用程序发布 ajaxForm 在 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38093885/
我有一个 html 表单,已通过 ajaxForm({...}) 调用将其转换为 ajaxForm。其中一个元素是 fileInputElement。另外,我还集成了一个 MultiSelector
我正在尝试在 ajaxForm 的错误方法中访问我的表单对象: $('#foo').ajaxForm({ error: function(){ // where's my $('#foo'
我有以下表格,登录 instagram 取决于响应,如果登录意味着“确定”,那么成功,如果不是,它应该给我其他状态。 但在我下面的例子中,由于某些原因它总是给我空状态。 我试过尝试失败。 $(docu
我加载 jquery 和 ajaxform 插件,然后在元素上初始化 ajaxform。 脚本.js $(document).ready(function() { $('.form').
$(document).ready(function() { var options = { target: '#output1', // target element(s)
我正在尝试使用jquery表单,但它在控制台中说ajaxForm不是一个函数。jquery.form.js 已正确包含,并且代码位于文档就绪函数中... 这是脚本: $("#apply-form").
这是要发布到 Worldpay 支付网关的付款表格。它具有 WorldPay 文档中的所有参数,如果直接发布,它可以正常工作。 但是,现在我正在努力 AJAX 首先将表单发布到我的网站(使用 jque
这个问题已经有答案了: .ajaxform not working inside the validation submitHandler? (1 个回答) 已关闭10 年前。 This questi
我想将变量的值传递给ajaxForm数据。 value1 = "dynamic_value1"; value2 = "dynamic_value2"; $('form').ajaxForm({
我正在使用ajaxForm。现在我遇到了一个问题。我的想法是当用户输入用户名时,如果用户名错误,应该向用户报告一条消息。 我的代码工作正常,但问题是在向用户显示报告消息后,提交按钮变为非事件状态。因此
我是一名 Java 初学者,打算创建一个 Web 应用程序。我正在使用 ajaxform 向 Controller 提交一份表单。元素很少,其中之一是 type=file。 我的 Controller
我正在使用 jQuery 插件(ajax 形式),我尝试实现这样的东西: $("#MyFormID").ajaxForm({ dataType: "json", resetForm:
如何从表单元素中删除 ajaxForm 以便执行默认操作? $('form').off('ajaxForm') 或 $('form').unbind('ajaxForm') 不工作 初始化为$('fo
我尝试使用 jQuery ajaxForm 插件中的“beforeSubmit”选项来验证数据,但是即使存在无效的表单字段,表单也会提交。我哪里出错了?谢谢, $(document).ready(fu
如何使用ajaxform插件获取当前提交表单的父div id 我对成功状态没有任何问题 谢谢。 下面是我的代码。 $('.formsubmit').ajaxForm( { beforeSub
我正在使用 ajaxForm 将数据发送到在后台运行的 php 文件,一些 js 函数将检查 php 文件是否正在异步运行。因此,如果出现某些故障(互联网/电力中断),我希望我的用户能够重试上次提交的
我正在努力使用 ajaxForm 将数据传递到我的 PHP 文件,以便我可以插入到 MySQL 数据库中。 下面是当前在表单提交期间显示进度条的 JavaScript 函数,问题是姓名、电话和电子邮件
我正在使用 Django 和 AjaxForm 提交一个表单,将项目添加到用户的“购物车”。我的页面上列出了多个商品,每个商品都有自己的“添加到购物车”按钮。单击特定的“添加到购物车”按钮后,我使用
我在使用 AjaxForm 时遇到了一些困难文件上传和应用引擎 blobstore。我怀疑困难是因为 blobstore 上传处理程序(blobstore_handlers.BlobstoreUplo
我需要在提交表单后清除表单。时间差 $(document).ready(function() { $('#msgform').ajaxForm(function (data, textStatus)
我是一名优秀的程序员,十分优秀!