この記事では、PHP ファイルのアップロードのバックエンド処理のヒントについて説明します。
ビジネスシナリオ 1。アップロードするファイルを 1 つだけ選択します。すぐに検証作業を行う必要はありません。その場合、最適化はまったく行われない可能性があります。最終的にしなければならないことは、このファイルをフォームに入力して一緒に送信し、直接処理することだけだからです。
ビジネスシナリオ 2。複数のファイルをアップロードする必要があり、ファイルの内部コンテンツを随時検証して、対応するページに表示する必要があります。この場合、ユーザーがファイルのアップロードを選択した後、ファイル内の情報を読み取る必要があるため、ファイルをすぐにアップロードする必要があり、最後に送信するときにもファイルを一度送信する必要があります。明らかに、ここには反復的なアップロード タスクがあり、1 つはユーザーの時間を消費し、もう 1 つはサーバーの帯域幅リソースを消費します。最適化の方法としては、初回にファイルをアップロードした後、そのファイルをサーバー上に保持しておき、実際にフォームを送信するときに、アップロードされた一時ファイルを読み込むだけでよいという方法も考えられます。はい、これが私たちのアプローチです!
ビジネス シナリオ 3 はシナリオ 2 と似ていますが、複数のファイルを個別にアップロードすることができます。つまり、最初に 10M、2 回目に 10M、合計 10 回アップロードした可能性があります。そうすると、サーバー側では 1 回の送信がアップロード サイズの制限を超えたはずですが、もしそうなら。毎回アップロードしても大丈夫、最後に送信するときも短いテキストメッセージをアップロードするだけです!
確かに考え方はシンプルで問題なさそうですが、私の能力では限界があるのか、これに取り組むのに本当に時間がかかりました!以下に、参考のためにいくつかのサンプルコードを示します:
ファイルアップロード手法(アップロードした単一ファイルを一時ファイルとしてサーバー側に存在させる) サンプルコード:
1.ページjsの処理
リーリー2. 明らかに、ページはファイル情報とバックグラウンド処理コード (PHP) を取得する必要があります
3. コードの 2 つの部分を結合することで、ページ上に正しい情報がすでに含まれています。最後にフォームを送信するときに、ファイルをサーバーに送信する必要はありません。以前にアップロードしたファイルをアップロードする必要があります。一時ファイルを移動するだけで完了です。
$('.upload-file-real').attr('disabled', 'disabled') //フォームを送信する前にファイルのアップロードを無効にします
4. フォローアップ作業
一時ファイルをサーバーにアップロードした後、ユーザーが現在の操作をキャンセルしたかどうかを判断する方法はありません。キャンセルされた場合、一時ファイルは常にサーバー上に存在するため、一時ディレクトリを定期的にクリーンアップするスクリプトが必要です。 。もちろん、これは非常に簡単です。たとえば、1 日以上経過したファイルは削除されます。掃除の頻度をコントロールすることに注意してください。
5. 余談
ログは、問題が発生した場所、ファイルが削除された場所、データベースがクリーンアップされた場所を必ず記録してください。
ファイルをサーバーの一時ディレクトリにアップロードする バックエンドの処理原理は非常に単純に見えますが、少なくともこの小さな機能を実行していたときは、それを理解するのに多大な労力を要しました。外!
以上がこの記事の全内容です。phpファイルアップロードのバックエンド処理スキルをマスターしていただければ幸いです。