多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > PHP+JavaScript+HTML實現上傳PDF和瀏覽PDF課件

PHP+JavaScript+HTML實現上傳PDF和瀏覽PDF課件

來源:程序員人生   發布時間:2015-03-31 07:54:43 閱讀次數:3401次
        在寒假簡單制作PHP網站時,需要實現在線閱讀PDF和上傳PDF的簡單功能,下面就簡單介紹下該功能。實現效果以下圖所示:
        1.當用戶登錄后,點擊“上傳課件”超鏈接可以實現隱藏和顯示上傳table的功能;
        2.當用戶選擇上傳的課件后,PDF上傳至本地網頁文件夾下,同時插入數據庫;
        3.當點擊相干PDF教學課件后,可以實現在線閱讀功能。
        網站布局參考:PHP網站使用JavaScript和Iframe簡單實現部份刷新效果





1. 隱藏/顯示table

        首先介紹如何通過JavaScript實現點擊超鏈接實現隱藏和顯示Table或DIV的效果,代碼以下所示:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf⑻"> <style type="text/css"> /* 這個鏈接改變色彩 */ a.one:link {color: #0000ff} a.one:visited {color: #0000ff} a.one:hover {color: #ffcc00} </style> </head> <script language="JavaScript"> function change(el) { whichEl = document.getElementById(el) //取得指定ID值的對象 if (whichEl.style.display == 'none') { //block是默許值為顯示,none為隱藏 whichEl.style.display = 'block'; } else { whichEl.style.display = 'none'; } return; } </script> <body> <TABLE cellSpacing=0 cellPadding=2 width="95%" align=center border=0> <TR> <TD align=left width=120 style="COLOR: #880000;font-weight:bold;"> <a href="#" class="one" onclick=change("operate")> 上傳課件 </a></TD></TR> </TABLE> <form action="upload.php" method="post" enctype="multipart/form-data"> <TABLE id="operate" cellSpacing=0 cellPadding=0 width="80%" align=right border=0 style="DISPLAY: none"> <tr> <td colspan="3"><hr width="90%" size="1" color="#FF0000"></td> </tr> <TR> <td width="80"><div align="right">課程編號: </div></td> <td><?php echo $_SESSION['courseid']; ?></td> <td></td> </TR> <TR> <td width="120"><div align="right">課件名稱: </div></td> <td width="250"><input type="text" name="kjname" id="kjname" value="" style=width:165pt; maxlength="50"/></td> <td></td> </TR> <TR> <td ><div align="right">上傳課件: </div></td> <td><input type="file" name="myfile" value="" style='font-size:16px'/>(*小于2M)</td> </TR> <TR height=4> <TD colspan="3"></TD> </TR> <tr> <td colspan="3"><hr width="90%" size="1" color="#FF0000"></td> </tr> <tr> <td colspan="3" align="middle"><div align="middle"> <input type="submit" style='font-size:22px' name="submit" value="確認上傳"/> </div></td> </tr> </TABLE> </form> </body> </html>
        其中核心代碼是通過<script language="JavaScript">..</script>定義JavaScript函數,設置style.display屬性none隱藏、block顯示;同時在超鏈接中調用該函數實現如上圖所示的效果。代碼以下:
        <script language="JavaScript">
       
function change(el) {
            whichEl =
document.getElementById(el)    
            if (whichEl.style.display == 'none') {  
//block為顯示,none為隱藏
                whichEl.
style.display   = 'block';
            } else {
                whichEl.style.display   = 'none';
            }
            return;
        }
        </script>
        <a href="#" class="one"onclick=change("operate")> 上傳課件 </a>
        <TABLEid="operate" align=right border=0style="DISPLAY: none">//初始隱藏
        同時在超鏈接中我通過設置style屬性,當點擊、移動到超鏈接上顯示的色彩不同。在超鏈接中通過<a class="one">便可實現。代碼以下:
        <style type="text/css">
            /* 這個鏈接改變色彩 */
            a.one:link {color: #0000ff}
            a.one:visited {color: #0000ff}
            a.one:hover {color: #ffcc00}

        </style>
        <a href="#" class="one" onclick=change("operate")> 上傳課件 </a>
       
顯示效果以下圖所示:

2. 顯示PDF在HTML網頁中

        顯示PDF是通過超鏈接跳轉的,這也是我前面PHP值傳遞中講述過的方法。其核心代碼main_right3⑶.php以下:
<TABLE cellSpacing=0 cellPadding=2 width="90%" align=right border=0> <?php //獲得課件信息 $hgi=new HttpPostInf(); $result=$hgi->doquery('2',"select * from Courseware_PDF where CP_Cid='".$cid."';"); $dj=json_decode($result,true); $jcount=count($dj); for($i=0; $i<$jcount; $i++){ ?> <TR height=10> <TD></TD></TR> <TR> <TD width=40><IMG src="../images/pdf⑵4.png"></TD> <TD> <A href="main_right3⑶-content.php?id=<?php echo $dj[$i]['CP_PDFurl'] ?>" class="one" target="rightFrame"><?php echo $dj[$i]['CP_Cwname'];?></A> </TD> <TD></TD> </TR> <?php } ?> <TR height=20><TD></TD></TR> </TABLE>
        其中里面嵌套的PHP代碼是連接數據庫里面的數據,其中數據庫是通過新浪SAE搭建的,PDF存儲的是URL,你既可以連接本地的地址也可連接云盤上的地址。以下圖所示:

        其中實例化類new HttpPostInf在httppost.php中,主要是后臺通訊處理。代碼以下:
<?php header("Content-Type: text/html; charset=utf⑻"); class HttpPostInf{ function __construct(){ //無參構造函數 } function doquery($type , $sql){ //網路通訊函數 $data = array ('sqlType' => $type , 'sqlExe' => $sql); $data = http_build_query($data); $opts = array ('http' => array ('method' => 'POST','header'=> "Content-type: application/x-www-form-urlencoded " ."Content-Length: " . strlen($data) . " ",'content' => $data)); $context = stream_context_create($opts); $html = file_get_contents('http://courseweb.sinaapp.com/courseweb.php', false, $context); return $html; } } ?>
        通過下面代碼便可實現跳轉到main_right3⑶-content.php顯示相應php,而傳遞的id參數整數你點擊的PDF超鏈接對應的數據庫課件URL地址。
        <A href="main_right3⑶-content.php?id=<?php echo $dj[$i]['CP_PDFurl'] ?>" 
            class="one" target="rightFrame">
       
下面是main_right3⑶-content.php代碼顯示PDF,這是通過HTML5實現的。

<?php header("Content-Type: text/html; charset=utf⑻"); //include ("saestorage.class.php"); //echo $_GET['id']; ?> <!DOCTYPE HTML> <html> <body> <embed width=100% height=100% fullscreen=yes src="<?php echo $_GET['id'];?>" /> </body> </html>
        下圖是顯示我們的云盤中PDF的例子:
<html> <body> <embed width=100% height=100% fullscreen=yes src="http://courseweb-coursewebpdf.stor.sinaapp.com/Expected%20Divergence%20based%20Feature%20Selection.pdf" /> </body> </html>
        你通過上面代碼可以顯示以下圖所示的在線PDF效果。
        一樣本地的網址為src="http://localhost:8080/CourseStudy/pdf/iCoot.pdf"便可顯示,其中文件夾為安裝的Apache路徑“F:xampphtdocsCourseStudypdf”,其中CourseStudy是我這個項目的文件名。
 

3. PHP上傳PDF

        PHP上傳PDF代碼以下,通過Form中定義屬性enctype="multipart/form-data",同時上傳到action="upload.php"該路徑下進行處理,提交方法采取POST方法。而選擇文件的是input定義type="file"便可。main_right3⑶.php代碼上傳部份以下:
<form action="upload.php" method="post" enctype="multipart/form-data"> <TABLE id="operate" cellSpacing=0 cellPadding=0 width="80%" align=right border=0 style="DISPLAY: none"> <tr> <td colspan="3"><hr width="90%" size="1" color="#FF0000"></td> </tr> <TR> <td width="80"><div align="right">課程編號: </div></td> <td><?php echo $_SESSION['courseid']; ?></td> <td></td> </TR> <TR> <td width="120"><div align="right">課件名稱: </div></td> <td width="250"><input type="text" name="kjname" id="kjname" value="" style=width:165pt; maxlength="50"/></td> <td></td> </TR> <TR> <td ><div align="right">上傳課件: </div></td> <td><input type="file" name="myfile" value="" style='font-size:16px'/>(*小于2M)</td> </TR> <TR height=4> <TD colspan="3"> </TD> </TR> <tr> <td colspan="3"><hr width="90%" size="1" color="#FF0000"></td> </tr> <tr> <td colspan="3" align="middle"><div align="middle"> <input type="submit" style='font-size:22px' name="submit" value="確認上傳"/> </div></td> </tr> </TABLE> </form>
        而上傳文件upload.php代碼以下,主要是通過<input type="file" name="myfile"中myfile對應上傳的文件PDF屬性,并判斷是不是是PDF文件。
        bool move_uploaded_file ( string filename, string destination) 上傳文件名filename到指定路徑destination
       
代碼中我是上傳到項目中pdf文件夾下,同時以當前時間命名;后面是插入數據庫課件表的操作。
        $_FILES['myfile']['name']是指被上傳文件的名稱
        $_FILES['myfile']['type']是指被上傳文件的類型,此時為"application/pdf"
        $_FILES['myfile']['size']是指被上傳文件的大小,單位為字節(B)
        $_FILES['myfile']['tmp_name']  是指被上傳文件存在服務器中的臨時副本文件名稱,文件被移動到指定目錄后臨文件將被自動消毀。
        參考: http://blog.csdn.net/wer1234s/article/details/7845018

<?php header("Content-Type: text/html; charset=utf⑻"); include ("../database/human.php"); include ("../database/course.php"); session_start(); if($_POST) { $file_name= $_FILES['myfile']['name'] ; $tmp_name = $_FILES['myfile']['tmp_name']; if ($_FILES['myfile']['type'] != "application/pdf") { echo "<p>請上傳 PDF 格式的文件.</p>"; } else { if(is_uploaded_file($tmp_name)) { //upload file $dest_dir='pdf'; //上傳文件的路徑 $name=$dest_dir.'/'.time().".pdf"; $time = time(); $result=move_uploaded_file($tmp_name,$name); if($result==1) { echo "<p>成功上傳</p>"; $path="http://localhost:8080/CourseStudy/teacher/".$name; //echo $path; //插入數據 $sql = "INSERT INTO Courseware_PDF (CP_Cno,CP_Cid,CP_Cwname,CP_PDFurl) "; $sql .= "VALUES ('".$time."','".$_SESSION['courseid']."','".$_POST['kjname']."','".$path."');"; echo $sql; $hgi=new HttpPostInf(); $result=$hgi->doquery('1',$sql); header('Location:main_right3⑶.php'); } } else { echo "<p>上傳文件失敗</p>"; } } } ?>
        以下圖所示,選擇PDF并上傳的運行結果,同時文件上傳至文件夾為安裝的Apache路徑“F:xampphtdocsCourseStudypdf”路徑下。



        最后希望文章對你有所幫助,由于這些知識都是環環相扣的,所以單獨講述不太易懂,我也是盡我自己的最大努力寫這幾篇文章,可能文章效果不是很好,也存在著很多不足的地方。但請海涵,還是希望你能發現文章中對你有用的知識吧!最后記念下自己寫的第100篇博客,兩年時間感謝自己~期待更長
        (By:Eastmount 2015⑶⑹ 深夜3點  http://blog.csdn.net/eastmount/)






生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 二区国产 | 性感美女视频免费网站午夜 | 日产精品一区二区三区免费 | 伊人久久免费视频 | 日本欧美一区二区免费视 | 欧美成人h版影片在线观看 欧美成人h版影院在线播放 | 久久久久久日本一区99 | 性欧美videofree高清hdbbw | 黄污网 | 最新99国产成人精品视频免费 | 最近好看中文字幕视频 | 美国毛片免费观看 | 国产中的精品一区的 | 亚洲 欧美 在线观看 | 最近最新中文字幕在线手机版 | 国产成人精品视频一区 | 91伊人久久 | 国产欧美日韩在线一区二区不卡 | 国产最新精品2020好看的 | 欧美最刺激好看的一级毛片 | 国产日韩精品欧美一区喷 | 波多野结衣四虎 | 国产成人高清精品免费5388密 | 精品伊人 | 黄色毛片大全 | 狠狠去 | 日本护士色xxxxx视频 | 午夜精品久久久 | 综合久青草视频 | 日本国产一区在线观看 | 亚洲欧洲在线视频 | 在线观看日本永久免费视频 | 成人免费久久精品国产片久久影院 | 久草中文字| www.日本在线播放 | 国产在线h | 亚洲伊人久久网 | 久久精品免看国产 | 日本香蕉一区二区三区 | 欧美毛片免费观看 | 国产成人久久精品一区二区三区 |