亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Java Rest API中獲取InputStream文件的真實路徑

如何在Java Rest API中獲取InputStream文件的真實路徑

至尊寶的傳說 2023-09-13 15:40:01
我有一個 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();
查看完整描述

1 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

我通過將輸入流轉換為字節數組解決了這個問題。我將 byte[] 轉發給數據庫持久化方法。我的代碼如下:


public byte[] toByteArray(InputStream is) throws IOException{

    ByteArrayOutputStream baus = new ByteArrayOutputStream();

    byte[] buffer = new byte[1024];

    int len;

    while((len= is.read(buffer)) != -1){

        baus.write(buffer, 0, len);

    }

    return baus.toByteArray();

}


@POST

@Path("/upload")

@Consumes(MediaType.MULTIPART_FORM_DATA)

public Response uploadFile(

                @FormDataParam("file") InputStream uploadedInputStream,

                @FormDataParam("file") FormDataContentDisposition fileDetail) {

    ...

    byte[] b = toByteArray(uploadedInputStream);

    business.saveUploadedFileInDatabase(b);

    ...

}


public boolean uploadFile(byte[] b) throws SQLException, IOException{

    ...

    PreparedStatement ps = conn.prepareStatement("INSERT INTO TABLE_IMAGE_TEST (CODE, IMAGE) VALUES (?, ?)");

    pstmt.setLong(1, 1L);

    pstmt.setBytes(2, b);

    pstmt.execute();

    ...

}


查看完整回答
反對 回復 2023-09-13
  • 1 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號