使用php完成一個用戶注冊以及管理的demo(php實現(xiàn)單文件與多文件的上傳)
Aug 08, 2016 am 09:29 AM此篇文章主要講解如何封裝一個php的用于文件上傳下載的函數(shù),可以用于本demo中的頭像上傳功能,順便講解一下多文件上傳的方式。如果對于文件上傳特別熟悉可以跳過此節(jié)。
還是使用之前那個界面。
addUser.php:
<code><span><span>html</span>></span><span>head</span>><span>meta</span><span>charset</span>=<span>"utf-8"</span>><span>title</span>><span><span>title</span>></span><span><span>head</span>></span><span>body</span>><span>H3</span>>添加管理員<span><span>H3</span>></span><span>FORM</span><span>action</span>=<span>"doAdminAction.php?act=addUser"</span><span>method</span>=<span>"post"</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>tr</span>><span>TD</span><span>align</span>=<span>"right"</span>>用戶名稱<span><span>TD</span>></span><span>TD</span>><span>input</span><span>type</span>=<span>"text"</span><span>name</span>=<span>"username"</span><span>placeholder</span>=<span>"請輸入用戶名稱"</span>/><span><span>TD</span>></span><span><span>tr</span>></span><span>tr</span>><span>TD</span><span>align</span>=<span>"right"</span>>用戶密碼<span><span>TD</span>></span><span>TD</span>><span>input</span><span>type</span>=<span>"text"</span><span>name</span>=<span>"password"</span><span>placeholder</span>=<span>"請輸入用戶名稱"</span>/><span><span>TD</span>></span><span><span>tr</span>></span><span>tr</span>><span>TD</span><span>align</span>=<span>"right"</span>>用戶郵箱<span><span>TD</span>></span><span>TD</span>><span>input</span><span>type</span>=<span>"text"</span><span>name</span>=<span>"email"</span><span>placeholder</span>=<span>"請輸入用戶名稱"</span>/><span><span>TD</span>></span><span><span>tr</span>></span><span>tr</span>><span>td</span><span>align</span>=<span>"right"</span>>性別<span><span>td</span>></span><span>td</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>input</span><span>type</span>=<span>"radio"</span><span>name</span>=<span>"sex"</span><span>value</span>=<span>"2"</span> />女 <span>input</span><span>type</span>=<span>"radio"</span><span>name</span>=<span>"sex"</span><span>value</span>=<span>"3"</span> />保密 <span><span>td</span>></span><span><span>tr</span>></span><span>tr</span>><span>td</span><span>align</span>=<span>"right"</span>>頭像<span><span>td</span>></span><span>td</span>><span>input</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"face"</span> /><span><span>td</span>></span><span><span>tr</span>></span><span>tr</span>><span>TD</span><span>colspan</span>=<span>"2"</span>><span>input</span><span>type</span>=<span>"submit"</span><span>value</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"]);
這一行代碼,即可把客戶端上傳的文件放在服務(wù)器中的對應(yīng)的地方。但是這樣的代碼有一些問題
(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>"超過了表單設(shè)置上傳文件的大小"</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></span></code>
如果發(fā)生了出現(xiàn)的錯誤,則這些錯誤會被打印出來。至此單文件上傳的內(nèi)容講解完畢,現(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>"超過了表單設(shè)置上傳文件的大小"</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>
多文件上傳分為兩種情況
(1)多個單文件上傳
<code><span><span>html</span>></span><span>head</span>><span>meta</span><span>charset</span>=<span>"utf-8"</span>><span>title</span>><span><span>title</span>></span><span><span>head</span>></span><span>body</span>><span><!-- 表單中enctype="multipart/form-data"的意思,是設(shè)置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數(shù)據(jù),進行下面的操作. --></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>INPUT</span><span>type</span>=<span>"hidden"</span><span>name</span>=<span>"MAX_FILE_SIZE"</span><span>value</span>=<span>"1048576"</span>/> 請選擇上傳文件:<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile1"</span>/><span>br</span>/> 請選擇上傳文件:<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile2"</span>/><span>br</span>/> 請選擇上傳文件:<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile3"</span>/><span>br</span>/><span>input</span><span>type</span>=<span>"submit"</span><span>value</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><span>html</span>></span><span>head</span>><span>meta</span><span>charset</span>=<span>"utf-8"</span>><span>title</span>><span><span>title</span>></span><span><span>head</span>></span><span>body</span>><span><!-- 表單中enctype="multipart/form-data"的意思,是設(shè)置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數(shù)據(jù),進行下面的操作. --></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>INPUT</span><span>type</span>=<span>"hidden"</span><span>name</span>=<span>"MAX_FILE_SIZE"</span><span>value</span>=<span>"1048576"</span>/> 請選擇上傳文件:<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile[]"</span>/><span>br</span>/> 請選擇上傳文件:<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile[]"</span>/><span>br</span>/> 請選擇上傳文件:<span>INPUT</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"myFile[]"</span>/><span>br</span>/><span>input</span><span>type</span>=<span>"submit"</span><span>value</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ù)組有很多的不同。
對于第一種的情況(相當于一個文件數(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ù)組轉(zhuǎn)換為第一種情況所示的二維數(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>
結(jié)果
<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ù)組處理的這部分,然后調(diào)用upload()函數(shù)即可。
<code><span><?php </span><span>require_once</span><span>"../include.php"</span>; <span>//用于轉(zhuǎn)換數(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>"超過了表單設(shè)置上傳文件的大小"</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)單文件與多文件的上傳),包括了方面的內(nèi)容,希望對PHP教程有興趣的朋友有所幫助。

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ramai pengguna akan memilih jenama Huawei apabila memilih jam tangan pintar Antaranya, Huawei GT3pro dan GT4 adalah pilihan yang sangat popular. Apakah perbezaan antara Huawei GT3pro dan GT4? 1. Rupa GT4: 46mm dan 41mm, bahan cermin kaca + badan keluli tahan karat + cangkang belakang gentian resolusi tinggi. GT3pro: 46.6mm dan 42.9mm, bahannya ialah kaca nilam + badan titanium/badan seramik + cangkerang belakang seramik 2. GT4 yang sihat: Menggunakan algoritma Huawei Truseen5.5+ terkini, hasilnya akan lebih tepat. GT3pro: Penambahan elektrokardiogram ECG dan saluran darah serta keselamatan

Mengapa Alat Snipping Tidak Berfungsi pada Windows 11 Memahami punca masalah boleh membantu mencari penyelesaian yang betul. Berikut ialah sebab utama Alat Snipping mungkin tidak berfungsi dengan betul: Focus Assistant dihidupkan: Ini menghalang Snipping Tool daripada dibuka. Aplikasi rosak: Jika alat snipping ranap semasa pelancaran, ia mungkin rosak. Pemacu grafik lapuk: Pemacu yang tidak serasi mungkin mengganggu alat snipping. Gangguan daripada aplikasi lain: Aplikasi lain yang sedang berjalan mungkin bercanggah dengan Alat Snipping. Sijil telah tamat tempoh: Ralat semasa proses naik taraf boleh menyebabkan penyelesaian mudah ini sesuai untuk kebanyakan pengguna dan tidak memerlukan sebarang pengetahuan teknikal khusus. 1. Kemas kini apl Windows dan Microsoft Store

"Fail" itu sendiri bukanlah jenis fail tertentu, tetapi konsep umum.

Bahagian 1: Langkah Penyelesaian Masalah Awal Menyemak Status Sistem Apple: Sebelum menyelidiki penyelesaian yang rumit, mari kita mulakan dengan asas. Masalahnya mungkin tidak terletak pada peranti anda; Lawati halaman Status Sistem Apple untuk melihat sama ada AppStore berfungsi dengan betul. Jika terdapat masalah, anda hanya boleh menunggu Apple membetulkannya. Semak sambungan Internet anda: Pastikan anda mempunyai sambungan internet yang stabil kerana isu "Tidak dapat menyambung ke AppStore" kadangkala boleh dikaitkan dengan sambungan yang lemah. Cuba tukar antara Wi-Fi dan data mudah alih atau tetapkan semula tetapan rangkaian (Umum > Tetapkan Semula > Tetapkan Semula Tetapan Rangkaian > Tetapan). Kemas kini versi iOS anda:

Dalam bahasa pengaturcaraan Java, selalunya perlu melakukan operasi seperti membaca, menulis, menyalin dan memadam fail. Java menyediakan satu set fungsi kelas Fail untuk melaksanakan operasi fail. Artikel ini akan memperkenalkan cara menggunakan fungsi Fail dalam Java untuk operasi fail. Import pakej yang diperlukan Sebelum menjalankan operasi fail, anda mesti mengimport pakej io dan nio Java dahulu: importjava.io.File;importjava.io.IOException;import.

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

Watch4pro dan gt masing-masing mempunyai ciri yang berbeza dan senario yang berkenaan Jika anda menumpukan pada fungsi yang komprehensif, prestasi tinggi dan penampilan yang bergaya, dan sanggup menanggung harga yang lebih tinggi, maka Watch 4 Pro mungkin lebih sesuai. Jika anda tidak mempunyai keperluan fungsi yang tinggi dan memberi lebih perhatian kepada hayat bateri dan harga yang berpatutan, maka siri GT mungkin lebih sesuai. Pilihan terakhir harus diputuskan berdasarkan keperluan peribadi, belanjawan dan keutamaan Adalah disyorkan untuk mempertimbangkan dengan teliti keperluan anda sendiri sebelum membeli dan merujuk kepada ulasan dan perbandingan pelbagai produk untuk membuat pilihan yang lebih termaklum.

Cara Mengoptimumkan Hayat Bateri iPad dengan iPadOS 17.4 Memanjangkan hayat bateri adalah kunci kepada pengalaman peranti mudah alih dan iPad ialah contoh yang baik. Jika anda merasakan bateri iPad anda kehabisan terlalu cepat, jangan risau, terdapat beberapa helah dan tweak dalam iPadOS 17.4 yang boleh memanjangkan masa penggunaan peranti anda dengan ketara. Matlamat panduan mendalam ini bukan hanya untuk memberikan maklumat, tetapi untuk mengubah cara anda menggunakan iPad anda, meningkatkan pengurusan bateri anda secara keseluruhan dan memastikan anda boleh bergantung pada peranti anda lebih lama tanpa perlu mengecasnya. Dengan mengamalkan amalan yang digariskan di sini, anda mengambil langkah ke arah penggunaan teknologi yang lebih cekap dan penuh perhatian yang disesuaikan dengan keperluan dan corak penggunaan individu anda. Kenal pasti pengguna tenaga utama
