Java 如何从计算机或URL加载文件
我有一个webapp,它接受JSON文件并将其解析为对象。我的目标是让用户能够从本地计算机或URL上传文件 我的索引JSP页面如下所示:Java 如何从计算机或URL加载文件,java,json,spring-mvc,Java,Json,Spring Mvc,我有一个webapp,它接受JSON文件并将其解析为对象。我的目标是让用户能够从本地计算机或URL上传文件 我的索引JSP页面如下所示: <form method="post" action="products" enctype="multipart/form-data"> Select a file from the computer <input type="file" name="file"> <br> Or load from
<form method="post" action="products" enctype="multipart/form-data">
Select a file from the computer <input type="file" name="file">
<br>
Or load from URL<input type="url" name="urlFile">
<br>
<button type="submit">Parse</button>
当我试图从本地计算机上传它时,它工作得非常好,但当我尝试使用URL时,我得到了500个错误(
java.io.FileNotFoundException
)。我相信这是因为系统仍然试图像在计算机上查找本地文件一样查找它。如何解决此问题?异常来自FileUtils.copyURLToFile
。表示发生这种情况的原因如下:
String tDir = System.getProperty("java.io.tmpdir");
String path = tDir + "tmp" + ".xml";
convFile = new File(path);
convFile.deleteOnExit();
try {
FileUtils.copyURLToFile(url, convFile);
}
catch (IOException e) {
// log exception
}
1.读取并发布异常的堆栈跟踪。2.使用调试器或简单的System.out.println了解变量包含的内容。3.了解如何正确创建文件路径:新建文件(目录,名称)()。4.Java有一种创建临时文件的方法(但不确定保存到临时文件的意义):鉴于OP在web框架中工作,最好将日志添加到框架本身为错误处理提供的任何钩子中。记录失败的最佳位置通常是在代码边界处(或者在框架的情况下略高于边界)。将其直接放在调用周围可能会导致错误,因为重试可能会被遗忘,而使用重试可能会导致重复的日志记录。
String tDir = System.getProperty("java.io.tmpdir");
String path = tDir + "tmp" + ".xml";
convFile = new File(path);
convFile.deleteOnExit();
try {
FileUtils.copyURLToFile(url, convFile);
}
catch (IOException e) {
// log exception
}