2016/4/19 ①單個文件上傳 ②上傳圖片后 預覽圖片

?

1,f1.php

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body>
<!-- 作業:在網上找上傳圖片預覽的代碼 上傳服務器 再預覽-->
<form action="f1chuli.php" method="post" enctype="multipart/form-data"><input type="file" name="file"></input><input type="submit" value="上傳"></input>
</form>
</body>
</html>

2,f1chuli.php

 1 <?php 
 2 header("content-type:text/html;charset=utf-8");
 3 //上傳文件的所有信息都保存在$_FILES["file"]數組中;
 4 //echo $_FILES["file"]["name"];//取文件名
 5 
 6 //echo $_FILES["file"]["type"];//取到 文件類型
 7 
 8 //echo $_FILES["file"]["size"];//取到  文件大小
 9 
10 //echo $_FILES["file"]["tmp_name"]; //文件在服務器臨時存放的路徑 臨時位置 
11 
12 //echo $_FILES["file"]["error"];//判斷上傳是否出錯
13 
14 //文件上傳
15 
16 //1,判斷是否出錯
17 if ($_FILES["file"]["error"]) {
18     echo "上傳出錯!";
19 }
20 else{
21     //2.加限制條件
22     if ($_FILES["file"]["type"]=="image/jpeg" && $_FILES["file"]["size"]<1024000)
23     {
24         //處理文件名
25         $str= date("YmdHisms",time());//加時間戳 區別相同文件名
26         //3.造一個存儲的路徑
27         $url="./img/".$str.$_FILES["file"]["name"];//如果還有重復 拼加用戶名
28         
29 
30         $filename=iconv("UTF-8","gb2312", $url);
31         //將路徑的編碼格式轉換為國標,防止文件亂碼
32         if (file_exists($filename)) {
33             echo "該文件已經存在!";
34         }
35         else{
36 
37 
38         //4.存儲
39         move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
40 
41             }
42     }
43 
44     else
45     {
46         echo "上傳文件的類型不符合要求";
47     }
48 }
49 
50 
51  ?>
View Code

顯示效果:

?

②上傳圖片 ? 圖片預覽 ?兩種形式

?

1,ceshi.php ? ?+ ? ?shangchuan.php ? 這種方法 必須在兩個文件同級目錄下

? ? 手動建立imags文件

?

ceshi.php

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>無標題文檔</title>
 6 </head>
 7 
 8 <body>
 9 <form id="sc" action="shangchuan.php" target="hidden_frame" method="post" enctype="multipart/form-data">
10     <div id="yl" style="margin-left:0px; width:144px; height:170px; background-size:144px 170px; background-image:url(images/l7a3.jpg)">
11         <input type="file" name="file" style="width:144px; height:170px; float:left; opacity:0;" width="146" onchange="document.getElementById('sc').submit()"/>
12         <img id="pic" style="display:none"/>
13     </div>
14     <input type="button" value="保存"/>
15 </form>
16 <iframe style="display:none;" name="hidden_frame" id="hidden_frame">
17 </iframe>
18 
19 </body>
20 <script type="text/javascript">
21 //回調函數
22 function showimg(aa)
23 {
24     var l = document.getElementById("yl");
25     var p = document.getElementById("pic");
26     
27     l.style.backgroundImage = "url("+aa+")";
28     p.setAttribute("src",aa);
29 }
30 </script>
31 </html>
View Code

?

shangchuan.php

 1 <?php
 2    //上傳文件限制
 3    if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 10000000))
 4   {
 5       //文件上傳是否出錯
 6       if ($_FILES["file"]["error"] > 0)
 7     {
 8         echo "上傳出錯: " . $_FILES["file"]["error"] . "<br />";
 9     }
10       else
11     {
12         //輸出文件信息
13         /*echo "文件名: " . $_FILES["file"]["name"] . "<br />";
14         echo "類型: " . $_FILES["file"]["type"] . "<br />";
15         echo "大小: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
16         echo "臨時路徑: " . $_FILES["file"]["tmp_name"] . "<br />";*/
17     
18     //判斷文件是否已存在
19     if (file_exists("images/" . $_FILES["file"]["name"]))
20       {
21           echo "<script language='javascript'>alert('".$_FILES["file"]["name"]."已經存在!')</script>";
22            
23       }
24     else
25       {
26           //造存儲路徑
27           $filename = "images/" . $_FILES["file"]["name"];
28           //移動圖片至保存路徑,解決中文亂碼問題
29             move_uploaded_file($_FILES["file"]["tmp_name"],iconv("UTF-8","gb2312",$filename));
30           
31             echo "該文件存儲在了: " . "images/" . $_FILES["file"]["name"];
32           echo "<script language='javascript'>parent.showimg('".$filename."')</script>";
33       }
34     }
35   }
36   else
37   {
38       echo "上傳失敗";
39   }
40 
41 ?>
View Code

顯示效果: 最初 ? 到 ? 點擊選圖 ? ? ? 再到文件顯示

?

2,shangchuanyulan.php ? 不許要手動建立 ? 同級目錄下 ?會自動生成upload 文件夾

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5 <title>無標題文檔</title>
  6 <?php 
  7 
  8 $uptypes=array('image/jpg', //上傳文件類型列表 
  9 'image/jpeg', 
 10 'image/png', 
 11 'image/pjpeg', 
 12 'image/gif', 
 13 'image/bmp', 
 14 'image/x-png'); 
 15 $max_file_size=5000000; //上傳文件大小限制, 單位BYTE 
 16 $destination_folder="upload/"; //上傳文件路徑 
 17 $watermark=1; //是否附加水印(1為加水印,其他為不加水印); 
 18 $watertype=1; //水印類型(1為文字,2為圖片) 
 19 $waterposition=1; //水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中); 
 20 $waterstring="newphp.site.cz"; //水印字符串 
 21 $waterimg="xplore.gif"; //水印圖片 
 22 $imgpreview=1; //是否生成預覽圖(1為生成,其他為不生成); 
 23 $imgpreviewsize=1/2; //縮略圖比例 
 24 ?> 
 25 <style type="text/css">body,td{font-family:tahoma,verdana,arial;font-size:11px;line-height:15px;background-color:white;color:#666666;margin-left:20px;} 
 26 strong{font-size:12px;} 
 27 aink{color:#0066CC;} 
 28 a:hover{color:#FF6600;} 
 29 aisited{color:#003366;} 
 30 a:active{color:#9DCC00;} 
 31 table.itable{} 
 32 td.irows{height:20px;background:url("index.php?i=dots" repeat-x bottom}</style> 
 33 </head> 
 34 <body> 
 35 <center><form enctype="multipart/form-data" method="post" name="upform"> 
 36 上傳文件: <br><br><br> 
 37 <input name="upfile" type="file" style="width:200;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17"> 
 38 <input type="submit" value="上傳" style="width:30;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17"><br><br><br> 
 39 允許上傳的文件類型為:jpg|jpeg|png|pjpeg|gif|bmp|x-png|swf <br><br> 
 40 <a href="index.php">返回</a> 
 41 </form> 
 42 <?php 
 43 if ($_SERVER['REQUEST_METHOD'] == 'POST') 
 44 { 
 45 if (!is_uploaded_file($_FILES["upfile"]["tmp_name"])) 
 46 //是否存在文件 
 47 { 
 48 echo "<font color='red'>文件不存在!</font>"; 
 49 exit; 
 50 } 
 51 $file = $_FILES["upfile"]; 
 52 if($max_file_size < $file["size"]) 
 53 //檢查文件大小 
 54 { 
 55 echo "<font color='red'>文件太大!</font>"; 
 56 exit; 
 57 } 
 58 if(!in_array($file["type"], $uptypes)) 
 59 //檢查文件類型 
 60 { 
 61 echo "<font color='red'>只能上傳圖像文件或Flash!</font>"; 
 62 exit; 
 63 } 
 64 if(!file_exists($destination_folder)) 
 65 mkdir($destination_folder); 
 66 $filename=$file["tmp_name"]; 
 67 $image_size = getimagesize($filename); 
 68 $pinfo=pathinfo($file["name"]); 
 69 $ftype=$pinfo["extension"]; 
 70 $destination = $destination_folder.time().".".$ftype; 
 71 if (file_exists($destination) && $overwrite != true) 
 72 { 
 73 echo "<font color='red'>同名文件已經存在了!</a>"; 
 74 exit; 
 75 } 
 76 if(!move_uploaded_file ($filename, $destination)) 
 77 { 
 78 echo "<font color='red'>移動文件出錯!</a>"; 
 79 exit; 
 80 } 
 81 $pinfo=pathinfo($destination); 
 82 $fname=$pinfo["basename"]; 
 83 echo " <font color=red>已經成功上傳</font><br>文件名: <font color=blue>".$destination_folder.$fname."</font><br>"; 
 84 echo " 寬度:".$image_size[0]; 
 85 echo " 長度:".$image_size[1]; 
 86 if($watermark==1) 
 87 { 
 88 $iinfo=getimagesize($destination,$iinfo); 
 89 $nimage=imagecreatetruecolor($image_size[0],$image_size[1]); 
 90 $white=imagecolorallocate($nimage,255,255,255); 
 91 $black=imagecolorallocate($nimage,0,0,0); 
 92 $red=imagecolorallocate($nimage,255,0,0); 
 93 imagefill($nimage,0,0,$white); 
 94 switch ($iinfo[2]) 
 95 { 
 96 case 1: 
 97 $simage =imagecreatefromgif($destination); 
 98 break; 
 99 case 2: 
100 $simage =imagecreatefromjpeg($destination); 
101 break; 
102 case 3: 
103 $simage =imagecreatefrompng($destination); 
104 break; 
105 case 6: 
106 $simage =imagecreatefromwbmp($destination); 
107 break; 
108 default: 
109 die("<font color='red'>不能上傳此類型文件!</a>"); 
110 exit; 
111 } 
112 imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); 
113 imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white); 
114 switch($watertype) 
115 { 
116 case 1: //加水印字符串 
117 imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black); 
118 break; 
119 case 2: //加水印圖片 
120 $simage1 =imagecreatefromgif("xplore.gif"); 
121 imagecopy($nimage,$simage1,0,0,0,0,85,15); 
122 imagedestroy($simage1); 
123 break; 
124 } 
125 switch ($iinfo[2]) 
126 { 
127 case 1: 
128 //imagegif($nimage, $destination); 
129 imagejpeg($nimage, $destination); 
130 break; 
131 case 2: 
132 imagejpeg($nimage, $destination); 
133 break; 
134 case 3: 
135 imagepng($nimage, $destination); 
136 break; 
137 case 6: 
138 imagewbmp($nimage, $destination); 
139 //imagejpeg($nimage, $destination); 
140 break; 
141 } 
142 //覆蓋原上傳文件 
143 imagedestroy($nimage); 
144 imagedestroy($simage); 
145 } 
146 if($imgpreview==1) 
147 { 
148 echo "<br>圖片預覽:<br>"; 
149 echo "<a href=\"".$destination."\" target='_blank'><img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); 
150 echo " alt=\"圖片預覽:\r文件名:".$destination."\r上傳時間:\" border='0'></a>"; 
151 } 
152 } 
153 ?> 
154 </center> 
155 </body> 
156 </html>
View Code

顯示效果: 從未選 ? ?到選中 ? ?到上傳后 ?顯示預覽

?上傳相同的文件 ?因上傳時間的不同導致上傳文件的名稱不同 ?加時間戳 ?和 后綴

文件目錄顯示效果:

?

3,待整理 ? 文件名 ?隨機獲取 ? ??

?

轉載于:https://www.cnblogs.com/haodayikeshu/p/5408690.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396251.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396251.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396251.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android項目里集成Cordova詳解

2019獨角獸企業重金招聘Python工程師標準>>> 一 安裝nodejs二 cmd創建Android項目三 導入工程 運行一下四 調用插件五 Android studio環境下將CordovaLib作為依賴導入六 自定義插件七 java類中的一些問題八 在CordovaActivity中添加原生View組件 九 在Fragment里使用…

facebook移動端框架_2016年所有頂級移動應用均歸Google或Facebook所有

facebook移動端框架Today Nielsen released their report about the most widely used mobile apps in 2016. The top 8 apps were all owned by just two corporations: Google and Facebook.今天&#xff0c;尼爾森發布了有關2016年使用最廣泛的移動應用程序的報告。排名前8的…

php 判斷瀏覽器是ie,js判斷是否是ie瀏覽器

怎么去看瀏覽器的內核等信息 ---- js的全局對象window子屬性navigator.userAgent&#xff0c;這個屬性是包含了瀏覽器信息的相關信息&#xff0c;包括我們需要的瀏覽器內核navigator.userAgent這個值取出來是個字符串&#xff0c;可以通過string的 indexOf方法或者正則匹配來驗…

【JAVA基礎】一:聊聊筆試常見到的 “==、equal” 比較是否相等的內在差別

開始本文之前&#xff0c;先讓我們記住一個口訣&#xff08;這個口訣只針對基礎的類比如String、Integer等&#xff0c;如果是自定義的類&#xff0c;需要看equal的具體實現&#xff09;&#xff1a;equal比較其值&#xff0c; 比較地址 這兩天在走查代碼的時候發現一個童鞋&am…

postgres 退出_postgresql – 如何修復Postgres以便在突然關閉后啟動它?

由于突然斷電,在我的本地機器上運行的PostGres服務器突然關閉.重新啟動后,我嘗試重新啟動postgres,我收到此錯誤&#xff1a;$pg_ctl -D /usr/local / pgsql / data restartpg_ctl: PID file "/usr/local/pgsql/data/postmaster.pid" does not existIs server runnin…

php生成appid,PHP生成騰訊云COS簽名

目標使用 PHP 創建 COS 接口所需要的請求簽名步驟按照官方示例(也許是我笨&#xff0c;我怎么讀都覺得官方文檔結構費勁&#xff0c;示例細節互相不挨著&#xff0c;容易引起歧義)&#xff0c;請求簽名應用在需要身份校驗的場景&#xff0c;即非公有讀權限時。否則在請求API接口…

es6作用域

作用域 一個需要注意的地方是&#xff0c;如果參數默認值是一個變量&#xff0c;則該變量所處的作用域&#xff0c;與其他變量的作用域規則是一樣的&#xff0c;即先是當前函數的作用域&#xff0c;然后才是全局作用域。 var x 1;function f(x, y x) {console.log(y); }f(2) …

java 有參數的構造函數如何注入_Spring5參考指南:依賴注入

依賴注入依賴注入就是在Spring創建Bean的時候&#xff0c;去實例化該Bean構造函數所需的參數&#xff0c;或者通過Setter方法去設置該Bean的屬性。Spring的依賴注入有兩種基于構造函數的依賴注入和基于setter的依賴注入。基于構造函數的依賴注入構造函數的注入是通過構造函數的…

深度學習去燥學習編碼_我們問了15,000個人,他們是誰,以及他們如何學習編碼

深度學習去燥學習編碼More than 15,000 people responded to the 2016 New Coder Survey, granting researchers an unprecedented glimpse into how adults are learning to code.超過15,000人對2016年新編碼器調查做出了回應&#xff0c;使研究人員對成年人如何學習編碼有了前…

CentOS 7 vi編輯命令

用vi打開一個yum文件 vi /usr/bin/yum 按 i 鍵后 進入insert模式&#xff0c;進入insert模式后才能進行修改 修改完成后 按esc鍵進入command模式&#xff0c; 然后:wq 保存文件并退出vi&#xff08;注意先冒號&#xff09; 保存命令 按ESC鍵 跳到命令模式&#xff0c;然后&…

C#學習筆記四: C#3.0自動屬性匿名屬性及擴展方法

前言 這一章算是看這本書最大的收獲了, Lambda表達式讓人用著屢試不爽, C#3.0可謂顛覆了我們的代碼編寫風格. 因為Lambda所需篇幅挺大, 所以先總結C#3.0智能編譯器給我們帶來的諸多好處, 下一遍會單獨介紹Lambda表達式. 這篇主要包括的內容有: 自動屬性,隱式類型,對象集合初始化…

array keys php,php array_keys與array_search的簡單使用

函數說明array_keys():返回數組中所有的鍵名。array_search():在數組中搜索給定的值&#xff0c;如果成功則返回相應的鍵名。//根據一個key返回關聯數組中的另一個key,并且不使用foreach// function array_key_relative(array $array, string $current_key, int $offset)functi…

RESTful服務的第三部分:HATEOAS和Richardson成熟度模型

by Sanchit Gera通過Sanchit Gera RESTful服務的第三部分&#xff1a;HATEOAS和Richardson成熟度模型 (RESTful Services Part III : HATEOAS and The Richardson Maturity Model) In Part I of this series, you learned the very basics of HTTP. We went over common HTTP …

mongdb集群3.4 shard 模式

從圖中可以看到有四個組件&#xff1a;mongos、config server、shard、replica set。mongos&#xff1a;數據庫集群請求的入口&#xff0c;所有的請求都通過mongos進行協調&#xff0c;不需要在應用程序添加一個路由選擇器&#xff0c;mongos自己就是一個請求分發中心&#xff…

我想變得富有的10個理由

1.我想和娘家人住得近一些&#xff0c;可以經常見面、聊天、逛街、吃飯。我們需要彼此的時候&#xff0c;可以馬上趕到。 2.我想在家人病痛的時候&#xff0c;能得到最好的救治。 3.我想住在干凈寬敞的大房子里&#xff0c;不要和長輩住^_^ 4.我希望不用我動手&#xff0c;家里…

alpha值計算 qcolor_量化交易與機器學習(四):如何研究alpha因子

算法交易策略由指示何時購買或出售資產以產生相對于基準&#xff08;例如指數&#xff09;的較高回報的信號驅動。 資產回報率中未通過暴露于該基準而無法解釋的部分稱為alpha&#xff0c;因此旨在產生這種不相關收益的信號也稱為alpha因子。本章主要介紹alpha因子一、從數據到…

項目啟動及需求分析(靳嘉豪、胡新宇、李晨曦、楊航、李瑤)團隊作業

&#xff08;1&#xff09; 這次團隊我們給我們團隊起的名字是&#xff1a;橋上吊刀刀倒吊著 隊員分別為&#xff1a;靳嘉豪、胡新宇、李晨曦、李瑤、楊航。 隊訓為&#xff1a;黑化肥揮發發灰會揮發。 胡新宇&#xff1a;http://www.cnblogs.com/hxy94264/ 靳嘉豪&#xff1a;…

java兩種傳參,有關java參數的兩種傳遞機制

值傳遞&#xff1a;方法調用時&#xff0c;實際參數把它的值傳遞給對應的形式參數&#xff0c;方法執行中形式參數值的改變不影響實際參 數的值。引用傳遞&#xff1a;也稱為傳地址。方法調用時&#xff0c;實際參數的引用(地址&#xff0c;而不是參數的值)被傳遞給方法中相對應…

tcp選項部分編碼_學習編碼中最難的部分也是最有趣的部分

tcp選項部分編碼by Corey Slaven通過Corey Slaven 學習編碼中最難的部分也是最有趣的部分 (The hardest part of learning to code is also the funnest part) “The more you know, the more you know you don’t know.”“知道的越多&#xff0c;知道的越多。” ― Aristotl…

SCU 4439 Vertex Cover(二分圖最小覆蓋點)題解

題意&#xff1a;每一條邊至少有一個端點要涂顏色&#xff0c;問最少涂幾個點 思路&#xff1a;最小頂點覆蓋&#xff1a;用最少的點&#xff0c;讓每條邊都至少和其中一個點關聯&#xff0c;顯然是道裸最小頂點覆蓋題&#xff1b; 參考&#xff1a;二分圖 代碼&#xff1a; #i…