关于struts文件上传遇到只有文件值没有接收到以及文件消失的解决方案

VSCode+ESP-IDF开发环境搭建:从零开始创建你的第一个物联网项目(2024最新版) 本文详细介绍了如何在2024年使用VSCode和ESP-IDF搭建物联网开发环境,从零开始创建第一个物联网项目。内容包括环境准备、ESP-IDF配置、项目创建与结构解析、构建烧录步骤以及高级技巧和常见问题解决方案,帮助开发者快速上手ESP32开发。 阅读详情

昨天我在进行struts文件上传的时候困扰了一晚上,让我很郁闷,就是说:一旦开始文件上传的时候就遇见报struts.xml文件的配置错误,这就让我很是郁闷,struts的配置文件命名就没有错误,为什么会报错呢,于是我就上网去查,试过了很多方法,发现都不能解决问题,弄了一晚上也没有弄出来,最后在无意中发现原来是struts的注入规范问题。

在传统的servlet会通过servlet来获取参数值,但是在struts22里面就不一样了,是要依赖注入的,就是说会把文件数据放到对应的规定好的对象成员变量里面,注意,我已经说了,是规定好的,就是说,这个成员变量的名称不绝对不能随便改变的,一般来说会有如下的规范:

文件本身:表单中的名称; 这个我就遇到了问题,导致取出的是无效值

文件的名称:表单中的名称+FileName

文件的类型:表单中的名称+ContentType;

这个过程中一般是不会犯错误的,但是会无意中引错包,这样就导致了看着代码似乎没有说明问题,但是实际上是不可行的。如果不知道这个问题,是很难通过其他方法发现或者解决的

解决的方法也非常的容易,那就是把已经引入的包全部删掉,全部使用IO包。这样就不会出现错误


另外当struts把所有的属性都注入进来之后,就可以进行文件传输了,文件传输可以使用最底层的IO流操作,也可以使用自带jar集成的方法来实现文件上传

FileUtils.copyFile(源值, 目标值);


另外还有注意的是如果把文件放在应用的目录下那么就会发生重启tomcat的时候上传的文件消失的情况,那么取决的方法就是把文件最好放到tomcat的目录之外,而且安全高效。



柔性OLED屏幕绿线故障的激光修复技术解析 OLED显示技术作为新一代显示方案,其主动矩阵驱动原理通过TFT背板控制每个像素的发光。在柔性屏幕应用中,微米级数据线路的物理损伤会导致显示异常,表现为贯穿屏幕的绿线故障。激光微焊技术凭借其微米级加工精度,成为修复这类精密电路损伤的理想方案。该技术通过纳秒级脉冲激光实现金属线路的精准重熔,在手机维修、显示面板制造等领域具有重要应用价值。特别是在折叠屏、曲面屏等柔性显示设备维修中,激光修复技术能有效解决因反复弯折导致的数据线断裂问题,配合光学定位系统和参数优化,修复成功率可达85%以上。 阅读详情

相关推荐

JaCoCo报告聚合的5个常见坑点排查指南:从单模块到多模块的完整避坑手册

本文详细解析了JaCoCo在多模块Maven项目中生成聚合报告时的5个常见问题,包括多模块报告聚合失效、覆盖率数据不一致、增量构建导致的覆盖率丢失等,并提供了具体的配置示例和解决方案。帮助开发者高效排查和解决JaCoCo报告聚合中的各种疑难杂症,提升代码覆盖率分析的准确性和效率。

weixin_27918373的博客 248

基于Struts2修复XSS漏洞(博主验证有效)

--------------------------------------------------------XSSFilter --------------------------------------------------- package com.itcast.filter; import com.itcast.utils.XssRequestWrappers; import javax.servlet.*; import javax.servlet.http.HttpServletReq.

weixin_42210904的博客 1752

用python提取PDF中各类文本内容的方法

用python提取PDF中各类文本内容的方法

安静的软件工程师 6082

Struts1 页面提交数据到ActionForm中获取的是null

[size=medium]这个问题耽误了我不到时间,我从配置文件struts.xml开始梳理到执行完后台程序返回页面,但是这个流程下来并没有任何的错误。 [b][color=red]碰到这个问题的时候我是从以下几个方面开始查找的:[/color][/b] 第一:检查页面的form表单的标签的name属性名称是否和封装的这个页面的ActionForm的属性名字匹配; 第二:检查struts配置...

奔跑在IT路 534

SAP MRKO与MIRO的对比分析:为何寄售结算需要定制开发?

本文深入分析了SAP系统中MRKO与MIRO在寄售结算中的功能差异,揭示了标准MRKO在财务控制和业务流程上的局限性。通过定制开发实践,如BAdI增强和界面优化,企业可显著提升结算效率与准确性。文章还探讨了未来SAP S/4HANA在寄售结算中的智能化趋势,为相关企业提供技术参考。

weixin_29300241的博客 419

从Gitee上部署视觉工程到Linux虚拟机

(使用SVM来识别装甲板的编号,此处手机上的图片中只有灯条没有数字,SVM无法识别出编号。这两行代码的意义是,当SVM识别不出或者识别不到编号时,把装甲板的编号默认为2号。找到自瞄程序中,数字识别类下的这两行代码,把注释去掉。这样,每次打开新的终端时,环境变量都会自动设置。(2)查看虚拟机设置选项,检查虚拟机USB接口是否为3.0及以上的接口。如果不是,要更改好。这样,每次打开新的终端时,环境变量都会自动设置。后,每次打开终端时自动设置这些环境变量,你可以将。打开第一个终端,用来挂ROS的内核启动页面。

2301_81035291的博客 1520

struts---找不到文件

[color=red]Unable to instantiate Action, com.company.cosysten.action.mgr.MgrPageAction, defined for 'mgrPage' in namespace '/'com.company.cosysten.action.mgr.MgrPageAction java.lang.ClassNotFoundEx...

学习空间...吧 172

零基础使用Manim画傅里叶变换

0x01 准备工作 确保你的电脑中安装的有:Python(3.6以上版本,推荐3.8)、FFmpeg(在PATH环境变量中)、LaTex发行版,如果这些都有了,就可以跳过这步。 下面是安装指南: Python:Win10用户直接在微软商店搜索Python3.8安装,也可以自行百度安装方法,在开始菜单右键打开PowerShell,或者Win+R输入PowerShell打开,输入Pyhton --version,显示3.8以上。 FFmpeg:可以直接百度下载,或者用我打包好的(下载链接)。下载好后,将ff

TagBug的博客 3191

关于使用struts2上传文件时获取不到文件内容的问题的解决方案

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33915554的博客 995

ESP32-S3打造离线语音助手:从零部署自定义唤醒词与本地大模型推理【实战指南】

本文详细介绍了如何利用ESP32-S3芯片打造离线语音助手,包括自定义唤醒词训练与本地大模型推理的实战指南。通过硬件架构解析、音频处理优化及性能调优技巧,实现低延迟、高隐私保护的语音交互方案,特别适合智能家居和物联网应用。

weixin_30296405的博客 603

【Flutter 问题系列第 85 篇】Xcode 运行 Flutter 提示 The Dart VM Service was not discovered after 60 seconds.

在 Xcode 上运行 Flutter 时提示 `The Dart VM Service was not discovered after 60 seconds. This is taking much longer than expected...`,意思是 `60秒后未发现Dart虚拟机服务。这比预期的要长得多`

“Allen Su”的博客 2235

struts升级版本之后无法获取到参数

struts升级版本之后无法获取到参数 struts原版本是2.3.32,后来因为某些原因升级成2.5.30。升级前可以获取到Content-Type:multipart/form-data 的数据。但是升级后发现获取不到了。开始以为是其他jar包版本的错误改了很长时间也解决不了。 直到我看到一个文章说“请求的头部信息为“multipart/form-data”时需要做处理才可以通过request.getParameter(“”)的方法获取到请求参数(文章地址:“https://www.cnblogs.co

weixin_45214729的博客 847

MOS管的体二极管在LLC中的作用

MOSFET是一个三端器件(G、D、S),在N沟道MOSFET的结构中,源极和漏极之间的N型材料中自然形成了一个寄生的PN结,这个PN结就是体二极管(Body Diode),它是不可避免的器件结构。📌 对于N沟MOSFET:体二极管是从漏极 D 到源极 S 的正向导通二极管,方向为 D → S。MOS管的体二极管在LLC中并不是主功率通道,但却是实现软开关(ZVS)和能量过渡的关键“临时路径”。用得好,它是你的朋友;忽略它,电路就可能烧毁。

weixin_43199439的博客 699

struts2文件上传失败 Content-Type not allowed

struts2 jpg文件上传失败 Content-Type not allowed org.apache.struts2.interceptor.FileUploadInterceptor - Content-Type not allowed: upload "upload__75549ca5_1239ddc5ce6__8000_00000161.tmp" image/pjpeg 原

ouyang1738的专栏 1049

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Struts之文件上传

Struts文件上传

hfy190616的博客 385

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

struts2文件上传后找不到文件 与 文件下载的问题

最近做一个关于文件上传下载的项目的时候,碰到几个问题: 1.文件上传时,此name属性要有三个对应Action属性 private File upload; private String uploadFileName; private String uploadContentType; 2.文件上传的存放路径,如果只是自己做测试,不用放到磁盘上,用 String realPath =

climber 5750

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

struts2结合uploadify3.2实现文件上传

1、请下载uploadify3.2插件,下载地址:http://download.youkuaiyun.com/detail/harderxin/5515929 4、uploadify官方地址:http://www.uploadify.com/,可以随时关注,版本不同,其中内置的函数会有所不同 2、注意:jquery版本须为jquery-1.7.2.min.js,1.4版本不支持,上面下载中的内容已经包含在里...

程序员Monkey的专栏 2547

struts2 jpg文件上传失败 Content-Type not allowed 解决方案

org.apache.struts2.interceptor.FileUploadInterceptor - Content-Type not allowed: upload "upload__75549ca5_1239ddc5ce6__8000_00000161.tmp" image/pjpeg 原有配置:用ext+struts2上传时一直显示进度条不消失: [code="java"...

caiying0504的专栏 429

struts2实现文件上传

研究了两天终于搞定了,之前一直想着怎么能将文件上传到eclipse中项目的WebContent目录下,然后在别的页面将上传的图片打开,之前一直被绝对路径所误导, 取得路径的方式: String realPath = ServletActionContext.getRequest().getRealPath("file");  但是在控制台输出的时候却是: D:\JP\workspace...

sky_xin的专栏 243

struts2 jpg文件上传失败 Content-Type not allowed

org.apache.struts2.interceptor.FileUploadInterceptor - Content-Type not allowed: upload "upload__75549ca5_1239ddc5ce6__8000_00000161.tmp" image/pjpeg 原有配置:用ext+struts2上传时一直显示进度条不消失: ...

永久前锋 186

Struts2知识汇总一

使用Strut2,必须要再web.xml中为Strut2配置过滤器(只有这样才能使用Strut2框架的内容) 其中的class名称不同的版本可能名字不一样。 (以下2.2.3版本可用) <filter> <filter-name>struts2</filter-name> <filter-class> org.apach...

ECHO的博客 494

03.Struts2值栈入门-01

03.Action参数以及值栈 1、获取HttpParamter对象 get():Paramter getValue: getMultipleValue: 2、在Action类中出现了数据类型转换失败,也没有任何提示,就失败了 ​ 如果没有继承ActionSupport则依旧能够正常访问。 3、ActionSupport类 Action类: 五个常量 SUCCESS NONE ERROR INPUT LOGIN 一个默认返回SUCCESS的execute方法 Validateable:验证方法

ycjcson的博客 185

关于eclipse中编辑struts.xml文件没有提示

首先找到window——preferences——XMl——xml catalog 点 add..,出现一对话框,location栏选file system, 找到struts-2.0.14-all\struts-2.0.14\src\core\src\main\resources目录下的 struts-2.0.dtd文件, 打开,然后key type 选择uri, 下面key值填 htt

LeiKeLin的专栏 622

uploadify在struts2下的使用

Jquery Ajax上传插件uploadify在struts2下的封装及使用

jiangtongcn的专栏 1754
上一篇: Struts的常用ognl表达式
下一篇: freemarker的使用以及认识
宇宙第一帅
博客等级 码龄12年 22粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值