php單張圖片上傳外掛免重新整理,相容手機,可實現類似微信圖片上傳的體驗

viqecel發表於2017-10-02

本上傳功能.是用於整合到一個php,ajax聊天室上的,具體可下載php聊天室http://download.csdn.net/download/viqecel/9832763


因為是聊天室,需要實現類似微信的圖片上傳效果,就是點選上傳按鈕後,自動直接彈出相簿,選擇好一張圖片後,自動上傳到聊天室併入庫.所以.通過upload()函式,可以不用顯示上傳框了,直接啟用子頁面中的上傳動作.另外,onchange事件則可以自動提交上傳,不必使用者點選上傳按鈕了.三步並做一步

<!-- 父頁面中的上傳按鈕 -->
<img src="ui/images/myimg.png" class="link" onclick="upload()" />

<iframe src="upload.php"id="box_paint_container" ></iframe>




upload.php 檔案中有一個表單,注意,通過下面的 window.parent,可以把值傳回父頁面中的一個表單上,從而可以實時瀏覽上傳的圖片,比如類這樣
js程式碼: $('#showImg').attr('src','圖片新地址');
<img src="" alt="" id="showImg"width="100%"onclick="return close_l();" style="">



<form enctype="multipart/form-data" action="upload.php"id="forms" method="post" name="upform" style="position: relative; ">  
  <input name="upfile" type="file"id="file" onchange="document.getElementById('forms').submit();
  window.parent.document.getElementById('box_paint_container').style.display='none';;"> 
</form>  

下面是父頁面中的一個函式
<script type="text/javascript">

function upload(){
var a = document.getElementById('box_paint_container').contentWindow.document.getElementById("file");
a.click();

}
</script>

 

 

 

 

upload.php中還有一個php上傳功能,相容手機版,可上傳單張圖片. 一併分享下

 

//上傳檔案型別列表 
 require_once 'config.php';
 require_once '../system/config/database.inc.php';
//require_once '../system/funcs/global.fun.php';
require_once 'incl/main.inc';

dbconnect(); $settings=get_settings(0); $options=get_options(); $lang=get_language(); 

if(isset($_COOKIE['uid'])){
$uid=intval(_encrypt(_getcookie("uid"),'DECODE'));	
$shopid=$_COOKIE['shopid'];	
$query='SELECT * FROM '.$dbss['prfx']."_member WHERE uid=$uid";

$result=neutral_query($query);
 if(neutral_num_rows($result)>0){
 $ext_user=neutral_fetch_array($result);

 $user=array();
$uname=$ext_user['username'];
$heading=$ext_user['headimg']==''?'/statics/uploads/'.$ext_user['img']:$ext_user['headimg'];
 if($uname==''){
	  $uname=substr_replace($ext_user['mobile'],"****",5,2);
	
 }
}
}


if(!isset($uid)){
	//許可權
	redirect('/index.php/mobile/user/login.php');die();
	
	}

$uptypes=array(  
    'image/jpg',  
    'image/jpeg',  
    'image/png',  
    'image/pjpeg',  
    'image/gif',  
    'image/x-png'  
);  
  
$max_file_size=2000000;     //上傳檔案大小限制, 單位BYTE  
$destination_folder="uploadimg/"; //上傳檔案路徑  
$watermark=0;      //是否附加水印(1為加水印,其他為不加水印);  
$watertype=1;      //水印型別(1為文字,2為圖片)  
$waterposition=1;     //水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中);  
$waterstring="http://www.xplore.cn/";  //水印字串  
$waterimg="xplore.gif";    //水印圖片  
$imgpreview=0;      //是否生成預覽圖(1為生成,其他為不生成);  
$imgpreviewsize=1/2;    //縮圖比例  

if ($_SERVER['REQUEST_METHOD'] == 'POST')  
{


    if (!is_uploaded_file($_FILES["upfile"]['tmp_name']))  
    //是否存在檔案  
    {  
         echo "圖片不存在!";  
         exit;  
    }  
  
    $file = $_FILES["upfile"];  
    if($max_file_size < $file["size"])  
    //檢查檔案大小  
    {  
        echo "檔案太大!";  
        exit;  
    }  
  
    if(!in_array($file["type"], $uptypes))  
    //檢查檔案型別  
    {  
        echo "檔案型別不符!".$file["type"];  
        exit;  
    }  
  
    if(!file_exists($destination_folder))  
    {  
        mkdir($destination_folder);  //上傳到的位置
    }  
  
    $filename=$file["tmp_name"];  
    $image_size = getimagesize($filename);  
    $pinfo=pathinfo($file["name"]);  
    $ftype=$pinfo['extension'];  
    $destination = $destination_folder.time().".".$ftype;  
    if (file_exists($destination) && $overwrite != true)  
    {  
        echo "同名檔案已經存在了";  
        exit;  
    }  
  
    if(!move_uploaded_file ($filename, $destination))  
    {  
        echo "移動檔案出錯";  
        exit;  
    }  
  
    $pinfo=pathinfo($destination);  //檔名
    $fname=$pinfo['basename']; 
	$line='<img onclick="imgbig(this)"src="'.$destination_folder.$fname.'"  style="width:100px;" />';
	$query='INSERT INTO '.$dbss['prfx']."_lines VALUES(NULL,$uid,'$uname',$timestamp,'$line','$shopid','$heading','',0)";
neutral_query($query);
//print_r($line);exit;
     //echo " <font color=red>上傳中....</font><br>";  
    // echo " 寬度:".$image_size[0];  
    // echo " 長度:".$image_size[1];  
    // echo "<br> 大小:".$file["size"]." bytes";  
	
}

 

 

 

 

相關文章