【发布时间】:2020-01-29 21:14:08
【问题描述】:
我有一个 Java Rest API Post 方法,它将图像 (InputStream) 作为参数发送,我必须将其保存在 Oracle 的 blob 列中。
我需要获取此 InputStream 的完整路径(真实路径)才能将此图像保存在数据库中。 我的代码如下。
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
String UPLOAD_FOLDER = "c:/uploadedFiles/"; // my rest api does not have this file, how to get at runtime?
String uploadedFileLocation = UPLOAD_FOLDER + fileDetail.getFileName(); // this line is ok
我想做这样的事情:
String UPLOAD_FOLDER = uploadedInputStream.getRealPathName();
或
String UPLOAD_FOLDER = fileDetail.getRealPathName();
【问题讨论】:
-
大多数浏览器不再发送他们上传文件的完整原始文件路径(出于安全/隐私原因)。他们只会发送没有路径的文件名。你为什么需要那个?
-
此
InputStream很可能不是FileInputStream,并且很可能与文件无关。这篇 SO 帖子将帮助您了解如何将 InputStream 写入 Oracle 中的 BLOB 列:stackoverflow.com/questions/8348427/… -
这个 post 方法将通过 android 应用程序接收图像。我需要将此文件写入数据库。文件处理方法(new File("path/filename.jpg")、new FileInputStream("path/filename.jpg") 等)要求提供完整路径
标签: java rest inputstream fileinputstream bufferedinputstream