java - jsp文件上传问题

标签 java jsp file-upload

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

这是我的代码

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/

相关文章:

java - Java中RandomAccessFile的读写顺序

Java的compareTo方法-找不到符号错误

java - Spring MVC 将逗号分隔列表绑定(bind)到多选

jquery - 使用 jquery fileupload basic 以编程方式删除文件

c# - 如何跟踪异步文件上传到 azure 存储的进度

java - 如何使用java selenium中的循环从项目网格中查找相同的元素?

java - 如何重复/循环/返回类

jsp - 使用 JSTL 检查集合大小

jsp - Tomcat JSP 预编译

javascript - 将 JSON 数据上传为文件