我正在测试将文件上传到服务器的Java Web应用程序。它使用一个旧库 - com.jspsmart.upload.smartupload - 据我所知应该可以工作。 saveAs方法需要一个应保存文件的路径。我试过上传文件但无法让它工作。我觉得这个问题可能与文件路径有关。如果安装目录类似于C:\ my_app,则路径为C:\ my_app \ uploads / filename.txt。这有关系吗?或者可能还有其他因素导致它无法上传?上传代码被try / catch包围,并且不会返回异常,所以我不确定为什么它不起作用。
我在图书馆找到的一些文档:http://demo.easyhis.com/jspsmartupload/help/doc/com/jspsmart/upload/File.html
示例代码:
private static string FS = System.getProperty("file.separator");
try {
myFile = myUpload.getFiles().getFile(0);
importFolder = Globals.getInstallDir() + FS + "uploads";
myFile.saveAs( importFolder + "/" + request.getParameter("import_file_name"), SmartUpload.SAVE_PHYSICAL);
} catch (Exception e) {
// outputs error
}
答案 0 :(得分:0)
Java可以在Windows下无差别地使用/
或\
作为文件分隔符,但它是一个或另一个 - 不要同时执行这两个操作!
无论如何,使用Path
,您将确保获得正确的工作路径:
Paths.get(Globals.getInstallDir()).resolve(FS).resolve("uploads")
.resolve("import_file_name").toString();
请注意FS
此处不应该是绝对的(即没有开头/
或\
)。
答案 1 :(得分:0)
使用File.separator。它将系统的默认路径返回到特定的文件分隔符。
private static string FS = File.separator;