目前我正在從瀏覽器上傳一個圖像。現在在後端有java代碼,我正在檢索這個圖像並轉換成字節數組並存儲到數據庫中,這部分工作實際上很好如何獲得Java中的絕對路徑
的代碼是這樣的:
String fromLocal = "D:/123.jpg";
File file = new File(fromLocal);
InputStream inputStream = null;
byte[] bFile= null;
byte[] imageData = null;
try {
inputStream = new BufferedInputStream(new FileInputStream(file));
ByteArrayOutputStream baos = new ByteArrayOutputStream(8192);
bFile = new byte[8192];
int count;
while((count = inputStream.read(bFile))> 0){
baos.write(bFile, 0, count);
}
bFile = baos.toByteArray();
if(bFile.length > 0){
imageData = bFile;
}
baos.flush();
inputStream.close();
} catch (Exception ioe) {
//throw ioe;
}
問題是,每當我試圖硬編碼圖像路徑(如這裏d:/123.jpg)這是工作精絕。現在它的依賴於用戶的依賴於&的客戶端,他可以從任何目錄下的任何驅動器加載圖像&。我沒有使用servlet的特權。 我的查詢是:
1.現在,如果我試圖從D:/123.jpg上傳相同的圖像從瀏覽器我只得到123.jpg不像D:/123.jpg的絕對路徑。因爲現在無法處理圖像。
2.如何知道用戶試圖上傳圖片的特定路徑(可以說用戶從C:/images/123.jpg上傳圖片),那麼如何獲得這個絕對路徑。
我盡力詳述我的問題,讓我知道如果有什麼不清楚我會嘗試以其他方式解釋。
您是否正在尋找Java中的getAbsolutePath()方法 –
用戶上傳文件在哪裏?上傳意味着你正在使用一個網站,但你說「我沒有使用servlet的特權」。你的軟件在哪裏運行? – f1sh
重新提問2,我非常肯定,目前大多數瀏覽器出於安全原因都不會發布文件的完整路徑。 – George