Zend を使用する場合Sutdio10. 6. ブレークポイントを設(shè)定して上記の PHP コードをデバッグすると、「if (move_uploaded_file($_FILES['screenshot']['tmp_name'], $target)) {」行のコード ブロックが実行されていないことがわかりました。そこで、次のように、スーパー グローバル変數(shù) $_FILES['screenshot']['tmp_name'] の値が空であることを確認(rèn)し、このコード行の前に $_FILES 変數(shù)の値を JSON 形式で出力します。 <\/span>{\"screenshot\":{\"name\":\"Penguins.jpg\",\"type\":\"\",\"tmp_name\":\"\",\"error\":2,\"size\":0}}<\/pre> <\/p>
対応する実行中のスクリーンショットは次のとおりです: <\/span><\/span><\/p>
<\/span><\/p>その後、$_FILES['screenshot']['error'] が 2 であることを確認(rèn)し、$_FILES スーパー グローバルの概要をオンラインで確認(rèn)しました。変數(shù)<\/span> はおおよそ次のとおりです。 <\/span><\/span> <\/p><\/span><\/span><\/p>$_FILES システム関數(shù)の一般的な使用法PHP プログラミング言語では次のようになります。 <\/span><\/p> $_FILES['myFile']['name'] は、クライアント ファイルの元の名前を表示します。 <\/span><\/p>$_FILES['myFile']['type'] ファイルの MIME タイプ (「image\/gif」など)。 <\/span><\/p>$_FILES['myFile']['size'] アップロードされたファイルのサイズ (バイト単位)。 <\/span><\/p>$_FILES['myFile']['tmp_name'] 保存される一時ファイルの名前。通常はシステムのデフォルトです。 <\/span><\/p>$_FILES['myFile']['error'] ファイルのアップロードに関連するエラー コード。さまざまなコードの意味は次のとおりです。 <\/span><\/p>0: ファイルは正常にアップロードされました。 <\/span><\/p>1: ファイル サイズが php.ini でシステムによって設(shè)定されたサイズを超えています。 <\/span><\/p>2: ファイル サイズが <\/span><\/p>MAX_FILE_SIZE オプションで指定された値を超えました。 <\/span><\/p>3;: ファイルの一部のみがアップロードされます。 <\/span><\/p>4:沒有文件被上傳。<\/span><\/p>5:上傳文件大小為0。<\/span><\/p>
另外,查詢PHP參考手冊關(guān)于move_uploaded_file函數(shù)的介紹如下:<\/span><\/p><\/p>
move_uploaded_file(PHP 4 >= 4.0.3, PHP 5)move_uploaded_file — 將上傳的文件移動到新位置說明bool move_uploaded_file ( string $filename , string $destination )本函數(shù)檢查并確保由 filename 指定的文件是合法的上傳文件(即通過 PHP 的 HTTP POST 上傳機(jī)制所上傳的)。如果文件合法,則將其移動為由 destination 指定的文件。 這種檢查顯得格外重要,如果上傳的文件有可能會造成對用戶或本系統(tǒng)的其他用戶顯示其內(nèi)容的話。 參數(shù)filename上傳的文件的文件名。 destination移動文件到這個位置。 返回值成功時返回 TRUE。 如果 filename 不是合法的上傳文件,不會出現(xiàn)任何操作, move_uploaded_file() 將返回 FALSE。 如果 filename 是合法的上傳文件,但出于某些原因無法移動,不會出現(xiàn)任何操作, move_uploaded_file() 將返回 FALSE。此外還會發(fā)出一條警告。 <\/pre>
<\/p>
范例<\/h3>
<\/p>
<\/p>
Example #1 Uploading multiple files<\/strong><\/p><\/p> $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES[\"pictures\"][\"tmp_name\"][$key]; $name = $_FILES[\"pictures\"][\"name\"][$key]; move_uploaded_file($tmp_name, \"$uploads_dir\/$name\"); }}?> <\/pre>原因終于找到了,是因?yàn)槲疑蟼髁艘粋€超過32768Bytes即32KB大小的Penguins.jpg文件導(dǎo)致出現(xiàn)<\/span>$_FILES['screenshot']['error']為2的錯誤,并且$_FILES['screenshot']['tmp_name']為空,move_uploaded_file($_FILES['screenshot']['tmp_name'], $target)函數(shù)調(diào)用時返回FALSE,if (move_uploaded_file($_FILES['screenshot']['tmp_name'], $target)) {?
? ...
?}代碼塊沒有執(zhí)行。<\/span><\/span>
? ? ?<\/p>\n
\n \n \n \n \n <\/div>"}
ホームページ
バックエンド開発
PHPチュートリアル
PHP アップロード ファイルが最大ファイル制限を超えているため、正常にアップロードできません
PHP アップロード ファイルが最大ファイル制限を超えているため、正常にアップロードできません
Jun 13, 2016 pm 12:01 PM
gt
lt
name
quot
screenshot
PHP によってアップロードされたファイルがファイルの最大制限を超えているため、正常にアップロードできません
現(xiàn)在、書籍「HeadFirst PHP & MySQL」の第 5 章「ファイルに保存されたデータの使用」を?qū)W習(xí)し、ファイルを?qū)g行しています。アップロードを申請する際にエラーが発生し、ファイルを正常にアップロードできませんでした。この問題は長い間私を悩ませてきましたが、幸いなことに、最終的には解決されました。原因は、アップロードした畫像ファイルのサイズが、HTML フォームの MAX_FILE_SIZE オプションで指定した値 32768Bytes (32KB) を超えているため、アップロードが成功しないためです。
PHP IDE 開発環(huán)境として XAMPP (Apache + MySQL + PHP + Perl) 統(tǒng)合開発パッケージと Zend Studio 10.6 を使用しました。また、PHP のデバッグには XDebug を使用しました。 Zend Studio10 .6 で Xdebug の PHP デバッグ環(huán)境を構(gòu)成するには、ブログ投稿「Zend Studio 10.5 および XDebug Debugging | Zend Debugger Explaining Drupal Source Code (1)」を參照しました。
対応するファイルアップロード例 PHP コード addscore.php は次のとおりです:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Guitar Wars - Add Your High Score</title> <link rel="stylesheet" type="text/css" href="style.css" /></head><body> <h2>Guitar Wars - Add Your High Score</h2><?php require_once 'appvars.php'; require_once 'connectvars.php'; if (isset($_POST['submit'])) { // Grab the score data from the POST $name = $_POST['name']; $score = $_POST['score']; $screenshot = $_FILES['screenshot']['name']; if (!empty($name) && !empty($score) && !empty($screenshot)) { // Move the file to the target upload folder $target = GW_UPLOADPATH . $screenshot; echo json_encode($_FILES); if (move_uploaded_file($_FILES['screenshot']['tmp_name'], $target)) { // Connect to the database $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die('Error Connecting to MySQL Database!'); // Write the data to the database $query = "INSERT INTO guitarwars VALUES (0, NOW(), '$name', '$score','$screenshot')"; mysqli_query($dbc, $query) or die('Error querying database;'); // Confirm success with the user echo '<p>Thanks for adding your new high score!</p>'; echo '<p><strong>Name:</strong> ' . $name . '<br />'; echo '<strong>Score:</strong> ' . $score; echo '<img src="' . GW_UPLOADPATH . $screenshot . '" alt="Score image" /></p>'; echo '<p><a href="index.php"><< Back to high scores</a></p>'; // Clear the score data to clear the form $name = ""; $score = ""; $screenshot = ""; mysqli_close($dbc); } } else { echo '<p class="error">Please enter all of the information to add your high score.</p>'; } }?> <hr /> <form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <input type="hidden" name="MAX_FILE_SIZE" value="32768" /> <label for="name">Name:</label> <input type="text" id="name" name="name" value="<?php if (!empty($name)) echo $name; ?>" /><br /> <label for="score">Score:</label> <input type="text" id="score" name="score" value="<?php if (!empty($score)) echo $score; ?>" /><br /> <label for="screeshot">ScreenShot</label> <input type="file" id="screenshot" name="screenshot" /> <hr /> <input type="submit" value="Add" name="submit" /> </form></body> </html>
Zend を使用する場合Sutdio10. 6. ブレークポイントを設(shè)定して上記の PHP コードをデバッグすると、「if (move_uploaded_file($_FILES['screenshot']['tmp_name'], $target)) {」行のコード ブロックが実行されていないことがわかりました。そこで、次のように、スーパー グローバル変數(shù) $_FILES['screenshot']['tmp_name'] の値が空であることを確認(rèn)し、このコード行の前に $_FILES 変數(shù)の値を JSON 形式で出力します。 {"screenshot":{"name":"Penguins.jpg","type":"","tmp_name":"","error":2,"size":0}}
対応する実行中のスクリーンショットは次のとおりです:

その後、$_FILES['screenshot']['error'] が 2 であることを確認(rèn)し、$_FILES スーパー グローバルの概要をオンラインで確認(rèn)しました。変數(shù) はおおよそ次のとおりです。
$_FILES システム関數(shù)の一般的な使用法PHP プログラミング言語では次のようになります。 $_FILES['myFile']['name'] は、クライアント ファイルの元の名前を表示します。 $_FILES['myFile']['type'] ファイルの MIME タイプ (「image/gif」など)。 $_FILES['myFile']['size'] アップロードされたファイルのサイズ (バイト単位)。 $_FILES['myFile']['tmp_name'] 保存される一時ファイルの名前。通常はシステムのデフォルトです。 $_FILES['myFile']['error'] ファイルのアップロードに関連するエラー コード。さまざまなコードの意味は次のとおりです。 0: ファイルは正常にアップロードされました。 1: ファイル サイズが php.ini でシステムによって設(shè)定されたサイズを超えています。 2: ファイル サイズが MAX_FILE_SIZE オプションで指定された値を超えました。 3;: ファイルの一部のみがアップロードされます。 4:沒有文件被上傳。5:上傳文件大小為0。另外,查詢PHP參考手冊關(guān)于move_uploaded_file函數(shù)的介紹如下:
move_uploaded_file(PHP 4 >= 4.0.3, PHP 5)move_uploaded_file — 將上傳的文件移動到新位置說明bool move_uploaded_file ( string $filename , string $destination )本函數(shù)檢查并確保由 filename 指定的文件是合法的上傳文件(即通過 PHP 的 HTTP POST 上傳機(jī)制所上傳的)。如果文件合法,則將其移動為由 destination 指定的文件。 這種檢查顯得格外重要,如果上傳的文件有可能會造成對用戶或本系統(tǒng)的其他用戶顯示其內(nèi)容的話。 參數(shù)filename上傳的文件的文件名。 destination移動文件到這個位置。 返回值成功時返回 TRUE。 如果 filename 不是合法的上傳文件,不會出現(xiàn)任何操作, move_uploaded_file() 將返回 FALSE。 如果 filename 是合法的上傳文件,但出于某些原因無法移動,不會出現(xiàn)任何操作, move_uploaded_file() 將返回 FALSE。此外還會發(fā)出一條警告。
范例
Example #1 Uploading multiple files
<?php$uploads_dir = '/uploads';foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name = $_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "$uploads_dir/$name"); }}?>
原因終于找到了,是因?yàn)槲疑蟼髁艘粋€超過32768Bytes即32KB大小的Penguins.jpg文件導(dǎo)致出現(xiàn)$_FILES['screenshot']['error']為2的錯誤,并且$_FILES['screenshot']['tmp_name']為空,move_uploaded_file($_FILES['screenshot']['tmp_name'], $target)函數(shù)調(diào)用時返回FALSE,if (move_uploaded_file($_FILES['screenshot']['tmp_name'], $target)) {?
? ...
?}代碼塊沒有執(zhí)行。? ? ?
このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。
Huawei GT3 ProとGT4の違いは何ですか?
Dec 29, 2023 pm 02:27 PM
多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質(zhì)はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質(zhì)はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結(jié)果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加
修正: Windows 11 で Snipping ツールが機(jī)能しない
Aug 24, 2023 am 09:48 AM
Windows 11 で Snipping Tool が機(jī)能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術(shù)知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する
iPhoneでApp Storeに接続できないエラーを修正する方法
Jul 29, 2023 am 08:22 AM
パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認(rèn)する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認(rèn)してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認(rèn)します?!窤ppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認(rèn)してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設(shè)定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設(shè)定のリセット] > [設(shè)定])。 iOS バージョンを更新します。
スクリーンショットってどのフォルダにあるのでしょうか?
Feb 27, 2023 am 10:48 AM
スクリーンショットはゲームのスクリーンショット専用のフォルダです。スクリーンショットを撮るには F12 を使用できます。デフォルトは bmp 形式です。bmp 形式は Windows オペレーティング システムの標(biāo)準(zhǔn)畫像ファイル形式であり、さまざまな Windows アプリケーションでサポートされています。
php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出,該如何解決
Jun 13, 2016 am 10:23 AM
php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出而不是在空白頁彈出?想實(shí)現(xiàn)這樣的效果:而不是空白頁彈出:------解決方案--------------------如果你的驗(yàn)證用PHP在后端,那么就用Ajax;僅供參考:HTML code
watch4proとGTのどちらが優(yōu)れていますか?
Sep 26, 2023 pm 02:45 PM
Watch4proとgtはそれぞれ特徴や適用シーンが異なりますが、総合的な機(jī)能、高性能、スタイリッシュな外観を重視し、価格は高くてもいいという方にはWatch 4 Proの方が適しているかもしれません。高度な機(jī)能要件はなく、バッテリー壽命と手頃な価格を重視する場合は、GT シリーズの方が適しているかもしれません。最終的な選択は、個人のニーズ、予算、好みに基づいて決定する必要がありますが、購入する前に自分のニーズを慎重に検討し、さまざまな製品のレビューや比較を參照して、より情報に基づいた選択を行うことをお勧めします。
iPadOS 17.4 で iPad のバッテリー壽命を最適化する方法
Mar 21, 2024 pm 10:31 PM
iPadOS 17.4 で iPad のバッテリー壽命を最適化する方法 バッテリー壽命の延長はモバイル デバイス エクスペリエンスの鍵であり、iPad がその良い例です。 iPad のバッテリーの消耗が早すぎると感じても、心配しないでください。iPadOS 17.4 には、デバイスの実行時間を大幅に延長できるトリックや微調(diào)整が多數(shù)あります。この詳細(xì)なガイドの目的は、情報を提供するだけではなく、iPad の使用方法を変え、全體的なバッテリー管理を強(qiáng)化し、充電せずにデバイスをより長く使用できるようにすることです。ここで概説したプラクティスを採用することで、個人のニーズや使用パターンに合わせてテクノロジーをより効率的かつ意識的に使用するための一歩を踏み出すことができます。主要なエネルギー消費(fèi)者を特定する
php が名前を取得できない場合はどうすればよいですか?
Nov 24, 2022 am 09:56 AM
form要素のnameとidの値が異なるとブラウザが認(rèn)識できないため、PHPが名前を取得できない 解決策: 1. 一部のform要素やframe要素がnameを使用していないか確認(rèn)する; 2. 取得できる要素のみを確認(rèn)するID は割り當(dāng)てられますが、名前は割り當(dāng)てられません; 3. 複數(shù)選択ボックスのチェックボックスでは、「join(',', $__POST['name'])」を使用してデータを形成できます。
See all articles