gpt4 book ai didi

java - jsp文件上传问题

转载 作者:行者123 更新时间:2023-11-30 05:05:59 26 4
gpt4 key购买 nike

我的代码在本地计算机上运行良好。但是当我将其上传到服务器时它不起作用。

这是我的代码

html 文件

<html>
<head>
<form action="fileUpload.jsp" name="upform" enctype="multipart/form-data">
<table width="60%" border="0" cellspacing="1" cellpadding="1" align="center" class="style1">
<tr>
<td align="left"><b>Select a file to upload :</b></td>
</tr>
<tr>
<td align="left">
<input type="file" name="filename" size="50">
</td>
</tr>
<tr>
<td align="left">
<input type="hidden" name="todo" value="upload">
<input type="submit" name="Submit" value="Upload">
<input type="reset" name="Reset" value="Cancel">
</td>
</tr>
</table>
</form>
</body>
</html>

fileUpload.jsp

<%@ page import="java.util.*,java.io.*"%>
<%
String path=request.getParameter("filename");
String newPath="";
int count=0;
try{
if(path!=null)
{
ArrayList arr=new ArrayList();
StringTokenizer st=new StringTokenizer(path,"\\");
while(st.hasMoreTokens())
{
arr.add(count,st.nextToken());
count++;
}
// create ur own path

newPath="/home/sumesh/workspace/TaskManager/WebContent/Pages/Files/"+arr.get(count-1);

int c;
FileInputStream fis=new FileInputStream(path);
FileOutputStream fos=new FileOutputStream(newPath);
while((c=fis.read())!=-1)
{
fos.write((char)c);
}
}
catch (Exception err){
out.println(err);
}
}
%>

我该如何解决这个问题?

最佳答案

首先,您不应该将其实现为 JSP,而是在 Servlet(或您最喜欢的 MVC 框架的操作:Stripes、Spring MVC、Struts 等)中实现。JSP 仅用于使用 HTML 来呈现代码、JSTL 和自定义 JSP 标记。

要处理文件上传,您应该使用专用 API,例如 Apache commons FileUpload ,因为 servlet API 不直接支持多部分请求。我所知道的所有 MVC 框架都包含对文件上传的支持。

现在解释为什么它在本地计算机上工作:当您打开作为请求中的参数发送的路径的输入流时,您将使用客户端计算机上的文件路径打开输入流。由于在这种情况下,服务器计算机也是客户端计算机,因此它可以工作。但一旦服务器不再是客户端,它就不再工作了。

关于java - jsp文件上传问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5076902/

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