gpt4 book ai didi

java - 什么 JAR 包含 getPart() 方法?

转载 作者:行者123 更新时间:2023-11-29 05:24:18 24 4
gpt4 key购买 nike

我正在尝试将文件从 apache 7.0 服务器上传到 mySQL 数据库。我已经编写了 html 代码来上传文件。

<form action="UploadValidate.jsp" method="post" enctype="multipart/form-data">
<fieldset>
<legend><font size="4" color="white">File Upload</font></legend><br/><br/>
<font size="4" color="white"><b>
<h3> Select File to Upload</h3> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
<input type="file"name="file" /><br/><br/>

<center>
<input type="submit" value="Upload File" /><br/><br/></center>

</font>
</fieldset>
</form>

这是 UploadValidate.jsp

      <%@ page import="java.io.*,java.sql.*,java.lang.String.*,com.oreilly.servlet.*"%>
<%
InputStream inputstream=null;
String str=request.getParameter("file");
Part filePart=request.getPart(str);
out.println(filePart);
if(filePart!=null){
out.println(filePart.getName());
out.println(filePart.getSize());
out.println(filePart.getContentType());
//output the inputstream of uploaded file
inputstream=filePart.getInputStream();
}
else{
out.println("cannot execute if condition");
}
%>
<%
try{
String message=null;
int id=123;
String url="jdbc:mysql://localhost:3306/Project";
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(url,"root","admin");
String sql="INSERT INTO uploadfile(id,file) VALUES(?,?)";
PreparedStatement stmt=con.prepareStatement(sql);
stmt.setInt(1,id);
if(inputstream!=null){
stmt.setBlob(2,inputstream);
}
int row=stmt.executeUpdate();
if(row>0){
out.print("<h3><font color=red> Success Welcome!!!!!<br><br> </font></h3>");
}
}catch(Exception e){
e.printStackTrace();
}
//session.setAttribute("Message",message);
//response.sendRedirect("Message.jsp");
%>

尽管我选择了要上传的文件,但 filePart 对象返回 null。它终止如果 bolck 并返回 “null 无法执行 if 条件”作为输出。

最佳答案

要回答实际问题,您获得空返回值的原因有两个。首先是代码:

   String str=request.getParameter("file");
Part filePart=request.getPart(str);

应该只是

   Part filePart = request.getPart("file");

但是,至关重要的是,request.getPart方法是 Servlet 3.0 功能,需要使用带有 @MultipartConfig 注释的 servlet(而非 JSP 文件) .

但是,代码中充斥着不良做法。

如评论中所述,十多年来一直不鼓励使用 scriptlet;您应该首先使用 servlet 作为某种 Controller ,然后使用类似以下内容(在内部)转发到您的 JSP View :

request.getRequestDispatcher("/WEB-INF/jsp/view.jsp").forward(request, response);

<font><center> HTML 元素也已弃用多年。

最后,有很多库可以帮助文件上传。例如,Apache Commons FileUpload .

Here is a good example如何将以上所有内容放在一起。

关于java - 什么 JAR 包含 getPart() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21904528/

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