簡體   English   中英

在JSP中無法上傳圖像文件的完整路徑

[英]Can't take uploaded image file full path in JSP

我正在嘗試使用JSP將圖像上傳到服務器

在JSP中:

 input id="fileUpload" type="file" name="file"

在Java中:

  File file = new File( request.getParameter("file"));
  String path = file.getAbsolutePath();
  BufferedImage sourceImage = ImageIO.read(new File(path));
  ImageIO.write(sourceImage, "jpg", new File("E:/h.jpg"));

如果使用Internet Explorer上傳圖像,它可以正常工作......但是在chrome,Firefox和safari瀏覽器中顯示文件路徑“fakepath / filename.jpg”並且圖像無法讀取。

在Internet Expolorer中,它偶然或多或少地工作,因為您可能在與訪問它的同一台機器上運行應用程序。 Internet Explorer在您上載文件時發送實際文件名,例如C:\\Users\\Administrator\\Desktop\\Image.jpg 您的Web應用程序在同一台計算機上運行,​​因此它可以從磁盤讀取該文件。

但是,Chrome和Firefox不希望將客戶端的完整路徑名公開給應用程序,而是使用fakepath\\Image.jpg 磁盤上沒有這樣的文件,這就是網絡應用程序無法讀取圖像的原因。

您應該做的是從請求中提取不同的部分,找到包含上載文件的部分,並從請求中讀取數據(而不是從文件中讀取)。 好消息是你不必自己發明所有這些代碼; 您可以使用Apache Commons Fileupload ,它將為您處理所有困難的部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM