【发布时间】:2011-01-04 02:29:33
【问题描述】:
我有一个问题是上传文件。它在我的计算机上运行良好,但在部署到服务器时失败。
系统正在浏览文件,然后系统将其压缩后再上传到服务器。当客户端浏览文件时,服务器会产生文件未找到的错误。这是我的代码:
try {
//This is a code to read a zipfile.
String dir = request.getParameter("dirs");
System.out.println(dir);
String tmp = dir.replace( '\\', '/' );
System.out.println(tmp);
String inFilename = tmp;
// String inFilename = dir;
String outFilename = "c:/sms.zip";
//String outFilename = "/webapps/ROOT/sms.zip";
FileInputStream in = new FileInputStream( inFilename);
ZipOutputStream out = new ZipOutputStream(
new FileOutputStream(outFilename));
// Add ZIP entry to output stream.
out.putNextEntry(new ZipEntry(inFilename));
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
//End of zipping file.
//Start uploading.
SimpleFTP ftp = new SimpleFTP();
// Connect to an FTP server on port 21.
ftp.connect("xxxxx", 21, "xxx", "xxxx");
// Set binary mode.
ftp.bin();
// Change to a new working directory on the FTP server.
ftp.cwd("web");
// Upload some files.
ftp.stor(new File("sms.zip"));
ftp.disconnect();
//finish uploading
out.closeEntry();
out.close();
in.close();
response.sendRedirect("../BakMeClient/success.jsp");
}
catch (IOException e) {
System.out.println(e);
}
String dir 是文件的位置。
错误信息是:
java.io.FileNotFoundException: D:\RELIVA\listmenu.java(系统找不到指定的文件)
感谢您的所有 cmets。根据我的观察,问题是这个脚本是在服务器上而不是在客户端上运行的。
我的意思是假设您在 c:/test.txt 浏览文件。当你点击上传按钮时,表单会将路径发送到服务器,服务器会在自己的目录中找到路径,当然不会找到。
我希望你明白发生了什么。那么现在:如何让它在客户端读取路径?
【问题讨论】:
标签: java jsp servlets file-upload