ホームページ  >  記事  >  php教程  >  ページ全体を更新せずに iframe を使用して画像をアップロードする例

ページ全体を更新せずに iframe を使用して画像をアップロードする例

高洛峰
高洛峰オリジナル
2016-12-06 14:48:191498ブラウズ

アップロードした画像のインスタントプレビュー機能をよく使いますが、その実装方法はたくさんありますが、そのほとんどはflash+jsで実装されています。そこで私は彼に解決策を与えました:

アイデア:

1. ページのアップロードされた画像部分を iframe に配置し、埋め込まれたページのスタイルと一致するようにボーダーレスおよびスクロールレスに設定します。必要に応じてサイズを固定します

2. アップロードした画像を iframe に送信します フォームを送信した後、再度元のページ (iframe が指すページ) に戻り、サーバーからアップロードした画像のアドレスを戻します。親ページのjsコードを呼び出して画像を読み込みます

3. プログレスバーなどの効果が必要な場合は、フォーム送信後、サーブレット側でプログレスバーが出力され、jsスクリプトが継続的に送信されます。ページのコンテンツを時間内に変更します。キャンセルなどの他の関数はプッシュを参照できます。

次のコードは基本的なファイルのアップロードを実装します:

index.jsp ページにファイルのアップロードが埋め込まれます page_uploadpic.jsp

index.jsp:

...
 
 <script type="text/javascript">
 /*
param imgPath:img path of uploaded
 
this function will show the uploaded img in div(id=show_img_div)
 */
 function showUploadImg(imgPath){
if(imgPath=="")return;
document.getElementById("show_img_div").innerHTML="<img src=&#39;"+imgPath+"&#39;/>";
}
 </script>
 <body>
 <iframe scrolling="no"width="300" height="100" src="_uploadpic.jsp"></iframe>
<!-- use to show img(uploaded) -->
<div id="show_img_div"></div>
 
 
...

_uploadpic.jsp:

...
 
<body onload="javascript:window.parent.showUploadImg(&#39;${img}&#39;);"><!--&#39;${img}&#39; request或者session中的图片地址(从服务器传递来的) -->
<form method="post" id="upload_form" action="${pageContext.request.contextPath }/servlet/IframeTestImageServlet" enctype="multipart/form-data">
  <input type="file" name="pic"/><br/><input type="submit" value="upload"/>
  </form>
</body>
 
 
...

サーブレット: (画像のアップロードを処理するサーブレット)

//处理上传的图片
 
.... 代码多 此处略去
 
   //把刚上传的图片在服务器中的地址返回到客户端
 
request.setAttribute("img",request.getContextPath()+"/img/mm.jpg");// &#39;/img/mm.jpg&#39;表示刚上传图片在服务器中的地址
request.getRequestDispatcher("/_uploadpic.jsp").forward(request, response);

ページ全体を更新せずに iframe を使用して画像をアップロードする上記の例は、編集者があなたと共有した内容のすべてです


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。