使用php完成一個使用者註冊以及管理的demo(php實作單一檔案與多檔案的上傳)
Aug 08, 2016 am 09:29 AM此篇文章主要講解如何封裝一個php的用於文件上傳下載的函數(shù),可以用於本demo中的頭像上傳功能,順便講解一下多文件上傳的方式。如果對於文件上傳特別熟悉可以跳過此節(jié)。
還是使用之前那個介面。
addUser.php:
<code><span><!doctype html></span><span><<span>html</span>></span><span><<span>head</span>></span><span><<span>meta</span><span>charset</span>=<span>"utf-8"</span>></span><span><<span>title</span>></span><span></<span>title</span>></span><span></<span>head</span>></span><span><<span>body</span>></span><span><<span>H3</span>></span>添加管理員<span></<span>H3</span>></span><span><<span>FORM</span><span>action</span>=<span>"doAdminAction.php?act=addUser"</span><span>method</span>=<span>"post"</span>></span><span><<span>TABLE</span><span>width</span>=<span>"60%"</span><span>border</span>=<span>"1"</span><span>cellpadding</span>=<span>"5"</span><span>cellspacing</span>=<span>"0"</span><span>bgcolor</span>=<span>"#cccccc"</span>></span><span><<span>tr</span>></span><span><<span>TD</span><span>align</span>=<span>"right"</span>></span>用戶名稱<span></<span>TD</span>></span><span><<span>TD</span>></span><span><<span>input</span><span>type</span>=<span>"text"</span><span>name</span>=<span>"username"</span><span>placeholder</span>=<span>"請輸入用戶名稱"</span>/></span><span></<span>TD</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>TD</span><span>align</span>=<span>"right"</span>></span>用戶密碼<span></<span>TD</span>></span><span><<span>TD</span>></span><span><<span>input</span><span>type</span>=<span>"text"</span><span>name</span>=<span>"password"</span><span>placeholder</span>=<span>"請輸入用戶名稱"</span>/></span><span></<span>TD</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>TD</span><span>align</span>=<span>"right"</span>></span>用戶郵箱<span></<span>TD</span>></span><span><<span>TD</span>></span><span><<span>input</span><span>type</span>=<span>"text"</span><span>name</span>=<span>"email"</span><span>placeholder</span>=<span>"請輸入用戶名稱"</span>/></span><span></<span>TD</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>td</span><span>align</span>=<span>"right"</span>></span>性別<span></<span>td</span>></span><span><<span>td</span>></span><span><<span>input</span><span>type</span>=<span>"radio"</span><span>name</span>=<span>"sex"</span><span>value</span>=<span>"1"</span><span>checked</span>=<span>"checked"</span>/></span>男 <span><<span>input</span><span>type</span>=<span>"radio"</span><span>name</span>=<span>"sex"</span><span>value</span>=<span>"2"</span> /></span>女 <span><<span>input</span><span>type</span>=<span>"radio"</span><span>name</span>=<span>"sex"</span><span>value</span>=<span>"3"</span> /></span>保密 <span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>td</span><span>align</span>=<span>"right"</span>></span>頭像<span></<span>td</span>></span><span><<span>td</span>></span><span><<span>input</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"face"</span> /></span><span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>TD</span><span>colspan</span>=<span>"2"</span>></span><span><<span>input</span><span>type</span>=<span>"submit"</span><span>value</span>=<span>"添加用戶"</span>/></span><span></<span>TD</span>></span><span></<span>tr</span>></span><span></<span>FORM</span>></span><span></<span>body</span>></span><span></<span>html</span>></span></code>
這裡是檔案目錄:
在表單提交的doAdminAction.php中,只需要增加 加move_uploaded_file($_FILES["face"]["tmp_name"], <br>
"upload/" . $_FILES["face"]["name"]);
這一行程式碼,即可將客戶端上傳的檔案放在伺服器中的對應的地方。但是這樣的程式碼有一些問題
(1)如果在admin不存在upload的資料夾,檔案上傳不上去。
(2)對於上傳的文件的類型沒有進行檢驗,如果出現(xiàn)病毒文件會比較危險。
(3)如果上傳了與upload資料夾中的文件名稱相同的文件,原來的文件就會被替換掉。
(4)對於檔案上傳可能會出現(xiàn)的一些錯誤沒有進行處理,例如檔案大小超過了2M,(php ini 檔案中預設規(guī)定的上傳限制大小為2M)
以下是解決方案:
(1)先判斷upload的資料夾是否存在,如果不存在則建立
<code><span>$path</span>=<span>"upload/"</span>; <span>//</span>如果路徑不存在就建立的路徑上 <span>if</span>(!file_exists(<span>$path</span>)) { mkdir(<span>$path</span>,<span>0777</span>,<span>true</span>); } </code>
(2)使用strtolower(end(explode(“.”, $filename)));取得檔案的拓展名稱
然後判斷拓展名是否在所需的文件類型中。
(3)使用md5(uniqid(microtime(true),true));得到一個唯一的字串與先前得到的檔案拓展名稱連接在一起,作為上傳檔案的檔案名稱。
(4)現(xiàn)在開始寫doAdminAction的程式碼,第四個問題將在程式碼中講解。
<code><span><span><?php</span><span>require_once</span><span>'../include.php'</span>; <span>//print_r($_FILES["face"]);</span><span>$path</span>=<span>"upload/"</span>; <span>//如果路徑不存在就建立的路徑上</span><span>if</span>(!file_exists(<span>$path</span>)) { mkdir(<span>$path</span>,<span>0777</span>,<span>true</span>); } <span>//允許的類型</span><span>$allowExt</span>=<span>array</span>(<span>"gif"</span>,<span>"jpeg"</span>,<span>"png"</span>,<span>"jpg"</span>,<span>"wbmp"</span>); <span>$filename</span>=<span>$_FILES</span>[<span>"face"</span>][<span>"name"</span>]; <span>$ext</span>=getExt(<span>$filename</span>); <span>if</span>(!in_array(<span>$ext</span>,<span>$allowExt</span>)){ <span>exit</span>(<span>"非法文件類型"</span>); } <span>//得到了唯一的文件名的文件</span><span>$filename</span>=getUniName().<span>"."</span>.<span>$ext</span>; <span>if</span>(move_uploaded_file(<span>$_FILES</span>[<span>"face"</span>][<span>"tmp_name"</span>], <span>$path</span>.<span>$filename</span>)) { <span>echo</span><span>"文件上傳成功"</span>; } <span>else</span> { <span>switch</span>(<span>$_FILES</span>[<span>"face"</span>][<span>'error'</span>]){ <span>case</span><span>1</span>: <span>$mes</span>=<span>"超過了配置文件上傳文件的大小"</span>;<span>//UPLOAD_ERR_INI_SIZE</span><span>break</span>; <span>case</span><span>2</span>: <span>$mes</span>=<span>"超過了表單設置上傳文件的大小"</span>; <span>//UPLOAD_ERR_FORM_SIZE</span><span>break</span>; <span>case</span><span>3</span>: <span>$mes</span>=<span>"文件部分被上傳"</span>;<span>//UPLOAD_ERR_PARTIAL</span><span>break</span>; <span>case</span><span>4</span>: <span>$mes</span>=<span>"沒有文件被上傳"</span>;<span>//UPLOAD_ERR_NO_FILE</span><span>break</span>; <span>case</span><span>6</span>: <span>$mes</span>=<span>"沒有找到臨時目錄"</span>;<span>//UPLOAD_ERR_NO_TMP_DIR</span><span>break</span>; <span>case</span><span>7</span>: <span>$mes</span>=<span>"文件不可寫"</span>;<span>//UPLOAD_ERR_CANT_WRITE;</span><span>break</span>; <span>case</span><span>8</span>: <span>$mes</span>=<span>"由于PHP的擴展程序中斷了文件上傳"</span>;<span>//UPLOAD_ERR_EXTENSION</span><span>break</span>; } <span>echo</span><span>$mes</span>; } <span>?></span></span></code>
如果發(fā)生了出現(xiàn)的錯誤,則這些錯誤會被印出來。至此單一檔案上傳的內容講解完畢,現(xiàn)在將上述的程式碼封裝為函數(shù)。
<code><span><?php</span><span><span>function</span><span>uploadFile</span><span>(<span>$path</span>=<span>"upload/"</span>,<span>$allowExt</span>=array<span>(<span>"gif"</span>,<span>"jpeg"</span>,<span>"png"</span>,<span>"jpg"</span>,<span>"wbmp"</span>)</span>,<span>$imgFlag</span>=true)</span> {</span><span>//如果路徑不存在就建立的路徑上</span><span>if</span>(!file_exists(<span>$path</span>)) { mkdir(<span>$path</span>,<span>0777</span>,<span>true</span>); } <span>//允許的類型</span><span>$filename</span>=<span>$_FILES</span>[<span>"face"</span>][<span>"name"</span>]; <span>$ext</span>=getExt(<span>$filename</span>); <span>if</span>(!in_array(<span>$ext</span>,<span>$allowExt</span>)){ <span>exit</span>(<span>"非法文件類型"</span>); } <span>if</span>(<span>$imgFlag</span>){ <span>//如何驗證圖片是否是一個真正的圖片類型</span><span>//getimagesize($filename):驗證文件是否是圖片類型 正確返回數(shù)組錯誤返回false</span><span>$info</span>=getimagesize(<span>$tmp_name</span>); <span>//var_dump($info);exit;</span><span>if</span>(!<span>$info</span>){ <span>exit</span>(<span>"不是真正的圖片類型"</span>); } } <span>//得到了唯一的文件名的文件</span><span>$filename</span>=getUniName().<span>"."</span>.<span>$ext</span>; <span>if</span>(move_uploaded_file(<span>$_FILES</span>[<span>"face"</span>][<span>"tmp_name"</span>], <span>$path</span>.<span>$filename</span>)) { <span>echo</span><span>"文件上傳成功"</span>; } <span>else</span> { <span>switch</span>(<span>$_FILES</span>[<span>"face"</span>][<span>'error'</span>]){ <span>case</span><span>1</span>: <span>$mes</span>=<span>"超過了配置文件上傳文件的大小"</span>;<span>//UPLOAD_ERR_INI_SIZE</span><span>break</span>; <span>case</span><span>2</span>: <span>$mes</span>=<span>"超過了表單設置上傳文件的大小"</span>; <span>//UPLOAD_ERR_FORM_SIZE</span><span>break</span>; <span>case</span><span>3</span>: <span>$mes</span>=<span>"文件部分被上傳"</span>;<span>//UPLOAD_ERR_PARTIAL</span><span>break</span>; <span>case</span><span>4</span>: <span>$mes</span>=<span>"沒有文件被上傳"</span>;<span>//UPLOAD_ERR_NO_FILE</span><span>break</span>; <span>case</span><span>6</span>: <span>$mes</span>=<span>"沒有找到臨時目錄"</span>;<span>//UPLOAD_ERR_NO_TMP_DIR</span><span>break</span>; <span>case</span><span>7</span>: <span>$mes</span>=<span>"文件不可寫"</span>;<span>//UPLOAD_ERR_CANT_WRITE;</span><span>break</span>; <span>case</span><span>8</span>: <span>$mes</span>=<span>"由于PHP的擴展程序中斷了文件上傳"</span>;<span>//UPLOAD_ERR_EXTENSION</span><span>break</span>; } <span>echo</span><span>$mes</span>; } }</code>
多檔案上傳分為兩種情況
(1)多個單一檔案上傳
<code><span><!doctype html></span><span><<span>html</span>></span><span><<span>head</span>></span><span><<span>meta</span><span>charset</span>=<span>"utf-8"</span>></span><span><<span>title</span>></span><span></<span>title</span>></span><span></<span>head</span>></span><span><<span>body</span>></span><span><!-- 表單中enctype="multipart/form-data"的意思,是設置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數(shù)據(jù),進行下面的操作. --></span><span><<span>FORM</span><span>action</span>=<span>"doAction2.php"</span><span>method</span>=<span>"post"</span><span>enctype</span>=<span>"multipart/form-data"</span>></span><span><<span>INPUT</span><span>type</span>=<span>"hidden"</span><span>name</span>=<span>"MAX_FILE_SIZE"</span><span>value</span>=<span>"1048576"</span>/></span> 請選擇上傳文件:<span><<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile1"</span>/></span><span><<span>br</span>/></span> 請選擇上傳文件:<span><<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile2"</span>/></span><span><<span>br</span>/></span> 請選擇上傳文件:<span><<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile3"</span>/></span><span><<span>br</span>/></span><span><<span>input</span><span>type</span>=<span>"submit"</span><span>value</span>=<span>"上傳"</span>/></span><span></<span>FORM</span>></span><span></<span>body</span>></span><span></<span>html</span>></span></code>
這種形式相當於上傳了多個單一檔案,在doAction2.php中print_r($_FILES);得到
<code><span>Array</span> ( [myFile1] => <span>Array</span> ( [name] => touxiang.jpg [type] => image/jpeg [tmp_name] => D:\xampp\tmp\php79E3.tmp [error] => <span>0</span> [size] => <span>28747</span> ) [myFile2] => <span>Array</span> ( [name] => 文章.png [type] => image/png [tmp_name] => D:\xampp\tmp\php7A03.tmp [error] => <span>0</span> [size] => <span>11655</span> ) [myFile3] => <span>Array</span> ( [name] => 增加.png [type] => image/png [tmp_name] => D:\xampp\tmp\php7A04.tmp [error] => <span>0</span> [size] => <span>7439</span> ) )</code>
(2)多重檔案上傳
<code><span><!doctype html></span><span><<span>html</span>></span><span><<span>head</span>></span><span><<span>meta</span><span>charset</span>=<span>"utf-8"</span>></span><span><<span>title</span>></span><span></<span>title</span>></span><span></<span>head</span>></span><span><<span>body</span>></span><span><!-- 表單中enctype="multipart/form-data"的意思,是設置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數(shù)據(jù),進行下面的操作. --></span><span><<span>FORM</span><span>action</span>=<span>"doAction2.php"</span><span>method</span>=<span>"post"</span><span>enctype</span>=<span>"multipart/form-data"</span>></span><span><<span>INPUT</span><span>type</span>=<span>"hidden"</span><span>name</span>=<span>"MAX_FILE_SIZE"</span><span>value</span>=<span>"1048576"</span>/></span> 請選擇上傳文件:<span><<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile[]"</span>/></span><span><<span>br</span>/></span> 請選擇上傳文件:<span><<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile[]"</span>/></span><span><<span>br</span>/></span> 請選擇上傳文件:<span><<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile[]"</span>/></span><span><<span>br</span>/></span><span><<span>input</span><span>type</span>=<span>"submit"</span><span>value</span>=<span>"上傳"</span>/></span><span></<span>FORM</span>></span><span></<span>body</span>></span><span></<span>html</span>></span></code>
同樣print_r( $_files)一下
<code><span>Array</span> ( [myFile] => <span>Array</span> ( [name] => <span>Array</span> ( [<span>0</span>] => touxiang.jpg [<span>1</span>] => 文章.png [<span>2</span>] => 增加.png ) [type] => <span>Array</span> ( [<span>0</span>] => image/jpeg [<span>1</span>] => image/png [<span>2</span>] => image/png ) [tmp_name] => <span>Array</span> ( [<span>0</span>] => D:\xampp\tmp\php1EC.tmp [<span>1</span>] => D:\xampp\tmp\php1ED.tmp [<span>2</span>] => D:\xampp\tmp\php1EE.tmp ) [error] => <span>Array</span> ( [<span>0</span>] => <span>0</span> [<span>1</span>] => <span>0</span> [<span>2</span>] => <span>0</span> ) [size] => <span>Array</span> ( [<span>0</span>] => <span>28747</span> [<span>1</span>] => <span>11655</span> [<span>2</span>] => <span>7439</span> ) ) ) </code>
發(fā)現(xiàn)兩種方式得到的陣列有很多的差異。
對於第一種的情況(相當於一個檔案數(shù)組)我們可以
<code><span>foreach</span> (<span>$_FILES</span><span>as</span><span>$var</span>) { <span>//對于每一個文件進行了文件上傳操作</span><span>$info</span>=uploadFile(<span>$var</span>); <span>echo</span><span>$info</span>; }</code>
對於第二種情況我們可以將所示的三維數(shù)組轉換為第一種情況所示的二維數(shù)組即可。
<code>foreach(<span>$_FILES</span>[myFile][name] as <span>$key</span>=><span>$var</span> ) { <span>$files</span>[<span>$key</span>][name]=<span>$_FILES</span>[myFile][name][<span>$key</span>]; <span>$files</span>[<span>$key</span>][type]=<span>$_FILES</span>[myFile][type][<span>$key</span>]; <span>$files</span>[<span>$key</span>][tmp_name]=<span>$_FILES</span>[myFile][tmp_name][<span>$key</span>]; <span>$files</span>[<span>$key</span>][<span>error</span>]=<span>$_FILES</span>[myFile][<span>error</span>][<span>$key</span>]; <span>$files</span>[<span>$key</span>][<span>size</span>]=<span>$_FILES</span>[myFile][<span>size</span>][<span>$key</span>]; } print_r(<span>$files</span>);</code>
結果
<code><span>Array</span> ( [<span>0</span>] => <span>Array</span> ( [name] => touxiang.jpg [type] => image/jpeg [tmp_name] => D:\xampp\tmp\php3227.tmp [error] => <span>0</span> [size] => <span>28747</span> ) [<span>1</span>] => <span>Array</span> ( [name] => 文章.png [type] => image/png [tmp_name] => D:\xampp\tmp\php3228.tmp [error] => <span>0</span> [size] => <span>11655</span> ) [<span>2</span>] => <span>Array</span> ( [name] => 增加.png [type] => image/png [tmp_name] => D:\xampp\tmp\php3229.tmp [error] => <span>0</span> [size] => <span>7439</span> ) )</code>
成功了,現(xiàn)在我們開始封裝一個檔案上傳函數(shù),這個函數(shù)呢既可以處理單檔案上傳又可以處理多檔案上傳。然後我們只需要寫數(shù)組處理的這部分,然後呼叫upload()函數(shù)。
<code><span><?php</span><span>require_once</span><span>"../include.php"</span>; <span>//用于轉換數(shù)組</span><span><span>function</span><span>buildInfo</span><span>()</span> {</span><span>foreach</span>(<span>$_FILES</span><span>as</span><span>$file</span>) { <span>$i</span>=<span>0</span>; <span>if</span>(is_string(<span>$file</span>[<span>'name'</span>])) { <span>$files</span>[<span>$i</span>]=<span>$file</span>; <span>$i</span>++; } <span>else</span> { <span>foreach</span>(<span>$file</span>[name] <span>as</span><span>$key</span>=><span>$var</span>) { <span>$files</span>[<span>$key</span>][name]=<span>$file</span>[name][<span>$key</span>]; <span>$files</span>[<span>$key</span>][type]=<span>$file</span>[type][<span>$key</span>]; <span>$files</span>[<span>$key</span>][tmp_name]=<span>$file</span>[tmp_name][<span>$key</span>]; <span>$files</span>[<span>$key</span>][error]=<span>$file</span>[error][<span>$key</span>]; <span>$files</span>[<span>$key</span>][size]=<span>$file</span>[size][<span>$key</span>]; } } } <span>return</span><span>$files</span>; } <span>//用于上傳</span><span><span>function</span><span>uploadFile</span><span>(<span>$path</span>=<span>"upload/"</span>,<span>$allowExt</span>=array<span>(<span>"gif"</span>,<span>"jpeg"</span>,<span>"png"</span>,<span>"jpg"</span>,<span>"wbmp"</span>)</span>)</span> {</span><span>//如果路徑不存在就建立的路徑上</span><span>if</span>(!file_exists(<span>$path</span>)) { mkdir(<span>$path</span>,<span>0777</span>,<span>true</span>); } <span>$files</span>=buildInfo(); <span>foreach</span>(<span>$files</span><span>as</span><span>$file</span>) { <span>//允許的類型</span><span>$filename</span>=<span>$file</span>[<span>"name"</span>]; <span>$ext</span>=getExt(<span>$filename</span>); <span>if</span>(!in_array(<span>$ext</span>,<span>$allowExt</span>)){ <span>exit</span>(<span>"非法文件類型"</span>); } <span>//校驗是否是一個真正的圖片類型</span><span>if</span>(<span>$imgFlag</span>){ <span>if</span>(!getimagesize(<span>$file</span>[<span>'tmp_name'</span>])){ <span>exit</span>(<span>"不是真正的圖片類型"</span>); } } <span>//得到了唯一的文件名的文件</span><span>$filename</span>=getUniName().<span>"."</span>.<span>$ext</span>; <span>if</span>(move_uploaded_file(<span>$file</span>[<span>"tmp_name"</span>], <span>$path</span>.<span>$filename</span>)) { <span>echo</span><span>"文件上傳成功"</span>; } <span>else</span> { <span>switch</span>(<span>$file</span>[<span>'error'</span>]){ <span>case</span><span>1</span>: <span>$mes</span>=<span>"超過了配置文件上傳文件的大小"</span>;<span>//UPLOAD_ERR_INI_SIZE</span><span>break</span>; <span>case</span><span>2</span>: <span>$mes</span>=<span>"超過了表單設置上傳文件的大小"</span>; <span>//UPLOAD_ERR_FORM_SIZE</span><span>break</span>; <span>case</span><span>3</span>: <span>$mes</span>=<span>"文件部分被上傳"</span>;<span>//UPLOAD_ERR_PARTIAL</span><span>break</span>; <span>case</span><span>4</span>: <span>$mes</span>=<span>"沒有文件被上傳"</span>;<span>//UPLOAD_ERR_NO_FILE</span><span>break</span>; <span>case</span><span>6</span>: <span>$mes</span>=<span>"沒有找到臨時目錄"</span>;<span>//UPLOAD_ERR_NO_TMP_DIR</span><span>break</span>; <span>case</span><span>7</span>: <span>$mes</span>=<span>"文件不可寫"</span>;<span>//UPLOAD_ERR_CANT_WRITE;</span><span>break</span>; <span>case</span><span>8</span>: <span>$mes</span>=<span>"由于PHP的擴展程序中斷了文件上傳"</span>;<span>//UPLOAD_ERR_EXTENSION</span><span>break</span>; } <span>echo</span><span>$mes</span>; } } }</span></code>
這段程式碼中也增加了對於上傳圖片是否為圖片格式的檢驗,以及對於圖片大小的檢驗,因為有些病毒檔案會偽裝為圖片檔案。
以上就介紹了使用php完成一個用戶註冊以及管理的demo(php實現(xiàn)單文件與多文件的上傳),包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區(qū)別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅動程式:不相容的驅動程式可能會幹擾截圖工具。來自其他應用程式的干擾:其他正在運行的應用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導致此issu簡單的解決方案這些適合大多數(shù)用戶,不需要任何特殊的技術知識。 1.更新視窗與Microsoft應用程式商店應用程

第1部分:初始故障排除步驟檢查蘋果的系統(tǒng)狀態(tài):在深入研究複雜的解決方案之前,讓我們先從基礎知識開始。問題可能不在於您的設備;蘋果的伺服器可能會關閉。造訪Apple的系統(tǒng)狀態(tài)頁面,查看AppStore是否正常運作。如果有問題,您所能做的就是等待Apple修復它。檢查您的網(wǎng)路連接:確保您擁有穩(wěn)定的網(wǎng)路連接,因為「無法連接到AppStore」問題有時可歸因於連接不良。嘗試在Wi-Fi和行動數(shù)據(jù)之間切換或重置網(wǎng)路設定(「常規(guī)」>「重置」>「重置網(wǎng)路設定」>設定)。更新您的iOS版本:

在Java程式語言中,經(jīng)常需要進行檔案的讀取、寫入、複製、刪除等操作。 Java提供了一組Files類別的函數(shù)來進行檔案操作。本文將介紹如何使用Java中的Files函數(shù)進行檔案操作。導入所需的套件在進行檔案操作之前,首先要導入Java的io套件和nio套件:importjava.io.File;importjava.io.IOException;import

php提交表單通過后,彈出的對話框怎樣在當前頁彈出php提交表單通過后,彈出的對話框怎樣在當前頁彈出而不是在空白頁彈出?想實現(xiàn)這樣的效果:而不是空白頁彈出:------解決方案--------------------如果你的驗證用PHP在后端,那么就用Ajax;僅供參考:HTML code

watch4pro和gt各自具有不使用的特點和適用場景,如果注重功能的全面性、高性能和時尚外觀,同時願意承擔較高的價格,那麼Watch 4 Pro可能更適合。如果對功能要求不高,更注重電池續(xù)航力和價格的合理性,那麼GT系列可能更適合。最終的選擇應根據(jù)個人需求、預算和喜好來決定,建議在購買前仔細考慮自己的需求,並參考各種產(chǎn)品的評測和比較,以做出更明智的選擇。

如何使用iPadOS17.4優(yōu)化iPad電池壽命延長電池續(xù)航時間是移動設備體驗的關鍵,iPad是一個很好的例子。如果您覺得iPad電池消耗速度過快,不用擔心,在iPadOS17.4中有許多技巧和調整可以顯著延長設備的運行時間。本深入指南的目標不僅僅是提供信息,而是改變您使用iPad的方式,增強您的整體電池管理,并確保您可以在無需充電的情況下更長時間地依賴您的設備。通過采用此處概述的做法,您朝著更高效、更謹慎地使用技術邁出了一步,這些技術是根據(jù)您的個人需求和使用模式量身定制的。識別主要的能量消耗者
