2016-11-16 3 views
0

Я учусь JSP и я не могу найти ответ на следующий вопрос:передает изображение от одного к другому .jsp .jsp

Я хочу, чтобы загрузить файл изображения на одной странице, передать его другому и показать там, как (на основе this вопроса):

First.jsp

<form method="post" onsubmit="save()" action="second.jsp" enctype="multipart/form-data"> 
    <input type="file" name="openFile" onchange="reloadPreview()"> 
    <canvas name="preview"></canvas> 
    <input type="submit" value="Save"/> 
</form> 
<script> 
    function reloadPreview(){ 
     var preview = document.getElementsByName("preview")[0]; 
     var file = document.getElementsByName("openFile")[0].files[0]; 
     var reader = new FileReader(); 
     var picture = new Image; 

     reader.onloadend = function() { 
      picture.src = reader.result; 
      preview.width = picture.width; 
      preview.height = picture.height; 
      var context = preview.getContext("2d"); 
      context.drawImage(picture, 0, 0); 
      dataUrl = preview.toDataURL(); 
     }; 

     if (file) { 
      reader.readAsDataURL(file); 
     } 
    } 

    function save() { 
     window.location = "second.jsp?imgUrl="+dataUrl; 
     document.getElementById("form").submit(); 
    } 

    var dataUrl; 
</script> 

1) то, что я должен сделать, чтобы получить доступ к содержимому холст из second.jsp?

2) Могу ли я получить доступ к файлу openFile без его загрузки в canvas (например, если файл не является изображением)?

+1

Процесс 1) Вы загрузите файл на сервер таким образом, чтобы он был доступен с помощью URL и 2) Вы передать этот URL (атрибут session, database, whatever) ко второму JSP, чтобы вы могли использовать его для создания правильного кода HTML/JS. – SJuan76

ответ

-1

Источник:

<%session.setAttribute("Down1","download.png");%> 
<td>Image: </td> 
<td><img src="download.png" width="516" height="516" alt="Down" name="Down1"/></td> 

Назначение:

<td><img src="download.png" width="516" height="516" alt="Down" name="Down1"/></td> 
+0

Этот ответ не пытается ответить на два вопроса, явно упомянутых в вопросе. – avojak