gpt4 book ai didi

java - Multipart/form-data 如何隐藏参数

转载 作者:太空宇宙 更新时间:2023-11-04 15:16:30 24 4
gpt4 key购买 nike

我正在开发一个网络应用程序。我的 jsp 带有 enctype="multipart/form-data",当我提交请求时,我无法在 servlet 中获取请求参数。

getParameter() 调用都将返回 null。问题是如何克服这个问题?

当未加密时,此代码可以正常工作。我知道这个问题已经被问过很多次了,但我没有找到任何直接的答案

JSP

<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="uploadfile[]" id="uploadfile" size="50" multiple="true" />
<br/><br/>
<input type="hidden" name ="e_id" value= <%=userBean.getEid%> />
<input type="hidden" name ="Uid" value= <%=userBean.getUid()%> />
<input type="submit" name ="button1" value="Upload" />
</form>

Servlet

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{

int e_id =0;
String uid = null;

HttpSession session1 = request.getSession(true);
if(ServletFileUpload.isMultipartContent(request)){//process only if its multipart content
try
{
List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for(FileItem item : multiparts)
{
if(!item.isFormField())
{
String name = new File(item.getName()).getName();
item.write( new File(UPLOAD_DIRECTORY + File.separator + name));

e_id = Integer.parseInt(request.getParameter("e_id"));
uid = request.getParameter("Uid");
}
else {}
...

最佳答案

您需要使用@MultipartConfig注释您的servlet并获取您使用的参数的值:

Part idPart = req.getPart("e_id");
try (Scanner scanner = new Scanner(idPart.getInputStream())) {
String idValue = idPart.nextLine(); // read from the part
}

我有一个project在 github 中提供了如何使用它的示例:

关于java - Multipart/form-data 如何隐藏参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20827284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com