簡體   English   中英

為什么已在IE中不顯示上載的圖像?

[英]Why Uploaded Image not being displayed in IE?

我使用簡單的HTML頁面上傳和發布圖像到servlet,然后將圖像轉換為byte []並使用doPost()方法保存在會話中:

        response.setContentType("text/html");
        items = upload.parseRequest(request);
    byte[] byteArray = item.get();
    request.getSession().setAttribute("image1", byteArray);

    out.println("<html>");
    out.println("<body onload='javascript:callParent()'>File uploaded successfully.");
    out.println("<img src='/ImageUpload' alt='' id='img2' name='img2' />");
    out.println("</body>");
    out.println("</html>");

在img標簽的src中,我正在調用相同的servlet,在doGet()中,獲取存儲在會話中的byte []並將它們發送回,如下所示:

    response.setContentType("image/jpeg");
    byte[] byteArray =(byte[])request.getSession().getAttribute("image1");
    OutputStream output = response.getOutputStream(); 
    output.write(byteArray);
    output.close();

此代碼在Mozilla中工作正常,但在IE中不工作,僅顯示紅色X,但img標簽根據圖像大小變寬,但未顯示任何內容。 另外,當我單擊提交按鈕兩次,然后在IE中以其他方式提交表單時,只需單擊一下即可提交。

我正在使用IE-8,圖像的類型為.JPEG。 我嘗試在網絡上搜索是否有任何設置問題,但沒有任何結果。

您的問題是您關閉了輸出流,因此它無法繼續加載。

實際上,我是使用body標簽的onload()事件自動打開瀏覽按鈕的。

    <body onload='frm1.imgUpload.click()'>
 <form action="ImgUpload" method="POST" enctype="multipart/form-data" name="frm1"  id="frm1">
    <input type='file' id = 'imgUpload' name = 'imgUpload'  onchange='frm1.submit()' />
</form>
   </body>

但是,當我刪除用於打開通過Java腳本瀏覽的代碼時,它開始在IE中正常運行,我現在不知道IE和Java腳本有什么問題,我現在手動單擊“瀏覽”按鈕,一切正常。

暫無
暫無

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

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