У меня есть одна проблема, чтобы загрузить файл. Он отлично работает на моем компьютере, но не удается выполнить развертывание на сервере.
Система должна просмотреть файл, затем система заархивирует его перед загрузкой на сервер. Когда клиент просматривает файл, сервер выдаст ошибку, что файл не найден. Вот мой код:
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 (система не может найти указанный файл)
Спасибо за все ваши комментарии. По моим наблюдениям, проблема в том, что этот скрипт запускается на сервере, а не на клиенте.
Я имею в виду, например, что вы просматриваете файл, например, по адресу c: /test.txt. Когда вы нажимаете кнопку загрузки, форма отправляет путь на сервер, а сервер находит путь в своем собственном каталоге и, конечно, не находит его.
Надеюсь, вы поняли, что случилось. Итак, теперь: как заставить его прочитать путь у клиента?