程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 異步上傳圖片幾種方法總結

php 異步上傳圖片幾種方法總結

編輯:關於PHP編程

要實現異步上傳圖片方法有常用的有二種,一種是利用iframe實現,另一種是借助於ajax來實現一般用第三方插件了。

上傳圖片form提交target到一個隱藏的iframe裡,

 代碼如下 復制代碼

form action="upload.php" id="form1" name="form1" enctype="multipart/form-data" method="post" target="uploadIframe">
<!--上傳圖片頁面  -->
</form>
<iframe name="uploadIframe" id="uploadIframe" style="display:none"></iframe>

然後後台處理完上傳圖片邏輯後返回給前台,利用ajax修改當前頁面DOM對象實現無刷新上傳圖片的友好功能。

實例

 代碼如下 復制代碼

a.html

 <form enctype="multipart/form-data" action="a.php" target="ifram_sign" method="POST">
        <input name="submit" id="submit" value="" type="hidden">
        <label>上傳文件: <input name="test_file" type="file" id="test_file" size="48"></label>
        <input type="image" value="立即上傳" id="submit_btn">
 </form>

<iframe name="ifram_sign" src="" frameborder="0" height="0" width="0" marginheight="0" marginwidth="0"></iframe>

PHP代碼:

 代碼如下 復制代碼 <?php
if ($_FILES["test_file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["test_file"]["error"] . "<br />";
  }
else
  {
//這裡的判斷圖片屬性的方法就不寫了。自己擴展一下。
  $filetype=strrchr($_FILES["test_file"]["name"],".");
  $filetype=substr($filetype,1,strlen($filetype));
  $filename="img/".time("YmdHis").".".$filetype;
  move_uploaded_file($_FILES["test_file"]["tmp_name"],$filename);
  echo '<script >alert(1)</script>';
  $return="parent.document.getElementByIdx_x('mpic".$pageset_id."').innerHTML='".$dataimgpath."'";
  echo "<script >alert('上傳成功')</script>";
  echo "<script>{$return}</script>";
  }
?>

其實jquery ajax圖片異步上傳

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">

<head>
  <title>圖片異步上傳</title>
</head>

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<link type="text/css" rel="stylesheet" href="css/index.css">

<body>
 <div class="frm">
  <form name="uploadFrom" id="uploadFrom" action="upload.php" method="post"  target="tarframe" enctype="multipart/form-data">
   <input type="file" id="upload_file" name="upfile">
  </form>
  <iframe src=""  width="0" height="0" style="display:none;" name="tarframe"></iframe>
 </div>
 <div id="msg">
 </div>
</body>
</html>


 

index.js

$(function(){
 $("#upload_file").change(function(){
   $("#uploadFrom").submit();
 });
});


function stopSend(str){
 var im="<img src='upload/images/"+str+"'>";
 $("#msg").append(im);

}

 

upload.php

<?php
 $file=$_FILES['upfile'];
 $name=rand(0,500000).dechex(rand(0,10000)).".jpg";
 move_uploaded_file($file['tmp_name'],"upload/images/".$name);

//調用iframe父窗口的js 函數

 echo "<script>parent.stopSend('$name')</script>";
?>


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved